Control GSAP Interactions in Webflow (Speed & Jump To)

Advanced 28:11 webflowgsapinteractionsanimationtriggers

Use GSAP event settings in Webflow — control, speed, and jump to — to pause, resume, freeze, and toggle animations from separate triggers, with no timeline duplication.

Key takeaways

  • Webflow won't let you add extra events to a native page-load interaction — but if you start the interaction from a custom event, you can mix page-load, hover, and click events in one place.
  • Control (play, pause, resume, stop) and speed are different tools: pause/resume keep the playhead where it is, stop resets it to the start, and speed lets you freeze (0) or run (1) without moving the timeline at all.
  • Reach for "no action" plus speed when the animation must be permanently stoppable on click — with pause/resume, a later hover-out would happily restart it from the beginning.
  • Toggle play/reverse turns one interaction and one animation into an open/close pair: the first click plays forward, the next plays it backward.
  • Custom events are the bridge between native triggers and code — Webflow generates a tiny snippet you paste into a page-load function to fire the interaction yourself.

Video chapters

  1. 00:00 Intro
  2. 01:25 Clarifying the setup and the scope of this lesson
  3. 03:39 Example #1: Pause and resume a page-load animation on hover
  4. 14:35 Example #2: Using the Speed parameter to play/resume and stop
  5. 21:11 Example #3: Open and close a popup with one interaction (Toggle Play/Reverse)
  6. 25:39 What's next
  7. 26:43 Outro

Webflow’s GSAP event settings — control, delay, jump to, and speed — are where interactions stop being one-off animations and start behaving like a system you direct. Once you know what each one does, you can pause a background loop while someone reaches for your main call to action, freeze an effect the moment it’s served its purpose, or open and close a popup with a single interaction.

These four settings show up across almost every trigger type, and they’re deceptively powerful. Rather than read definitions, we’ll work through three real scenarios that make the differences click — especially the subtle but important gap between pausing an animation and stopping it.

How it works

The first thing to understand is a limitation and its escape hatch. A native page-load interaction can’t take any extra events — there’s no “add another event” button. So if you want a page-load animation that also responds to hover or click, you build the interaction on a custom event instead. That unlocks the plus button, letting you mix page-load, hover, and click events inside one interaction. Webflow generates a small snippet for the custom event; you paste it into a page-load JavaScript function (in Before </body> tag) so your own code fires the interaction, while everything else stays in the interactions panel.

Now the settings themselves. Control decides what an event does to the timeline: play and pause/resume move or hold the playhead, stop halts the animation and resets it to the start, and no action deliberately does nothing to the timeline’s position. Speed is separate — it changes how fast the timeline runs without repositioning it, so a speed of 0 freezes the animation in place and 1 runs it normally. Jump to repositions the playhead to a specific point.

The key insight is when to use speed and no-action instead of pause/resume. Pause/resume is perfect when you just want to hold and continue — like a background loop that pauses while someone hovers your main CTA, then resumes on hover-out. But imagine an animation that must stop for good once a button is clicked. If hover-in/hover-out use pause/resume, the hover-out after the click would restart the animation from the beginning — exactly what you don’t want. The fix: set the hover events to no action and use speed (0 to freeze, 1 to resume) for the pause-like feel, then a stop on the click. Because no-action events never touch the timeline, they have no power to restart an animation the click has already stopped.

The last idea is elegance: toggle play/reverse. Assign both a popup’s open and close buttons a click event on one interaction, set control to toggle play/reverse, and the first click plays the animation forward (open) while the next plays it backward (close). One interaction, one animation — no duplicating-and-reversing like the classic approach.

How to use it

  1. Example 1 — pause a background loop near your CTA. Build an infinite background animation (two blurred circles orbiting via transform-origin offsets and a 360° Z rotation, repeat: infinite). Create the interaction from a custom event so you can add hover events too. Give your key buttons a shared attribute like element-role="important-cta", then add a mouse-enter event with control pause and a mouse-leave event with control resume, both targeting that attribute. Paste Webflow’s custom-event snippet into a page-load function so the loop starts on load.

  2. Example 2 — freeze, then stop on click. For a banner that pulses (repeat: infinite, back and forth), start it with a first mouse-enter on the section. On the button, add mouse-enter and mouse-leave events with control no action — set the enter event’s speed to 0 and the leave event’s speed to 1. Finally add a first click on the button with control stop and jump to 0, so the pulse ends permanently and never restarts on hover-out.

  3. Example 3 — one interaction opens and closes a popup. Give the open button element-role="open-popup" and the close button element-role="close-popup". Build a single action that reveals the popup wrapper (display: flex, opacity 0100%). Add two click events — one per role — and set control to toggle play/reverse on both. Clicking open plays forward; clicking close plays in reverse.

The custom-event trigger in Example 1 uses a small JavaScript snippet (Webflow generates it for you and the cloneable includes it). Grab it from the cloneable rather than retyping it by hand.

Resources

Frequently asked questions

Can I control one GSAP interaction from a different trigger in Webflow?
Not directly on a native page-load interaction — Webflow won't let you add more events to it. The workaround is to build the interaction on a custom event, which does let you attach hover and click events alongside it and drive them all from one place.
What's the difference between pause, stop, and speed in GSAP event settings?
Pause holds the animation where it is and resume continues from that point; stop halts it and resets the playhead to the start; speed leaves the timeline running but changes how fast — a speed of 0 freezes it, 1 plays at normal pace.
How do I stop a looping animation for good after a click without it restarting on hover-out?
Set the hover events to "no action" and control the motion with speed instead (0 to freeze, 1 to resume), then use a click event with control set to stop. Because the hover events don't touch the timeline, they can't restart an animation the click has already stopped.
How can I open and close a popup with a single Webflow interaction?
Give both the open and close buttons a click event on the same interaction and set control to toggle play/reverse. The first click plays the open animation forward; the next plays it in reverse to close — one animation instead of two.

← Back to the course