Jump to content
Search Community

TimeLineMax hover handle

daniel_pan test
Moderator Tag

Go to solution Solved by Diaco,

Warning: Please note

This thread was started before GSAP 3 was released. Some information, especially the syntax, may be out of date for GSAP 3. Please see the GSAP 3 migration guide and release notes for more information about how to update the code to GSAP 3's syntax. 

Recommended Posts

Hi, I am pretty new to GSAP.


I may make a pretty stupid question.


What I want to do is when I hover in an element, it triggers a Timeline animation.

And When i hover out, it triggers another one.


Problem is when the hover-in animation not finished and i hover out, the hover-out animation would have to wait the hover-in animation to finish. And if i hove in and out so many times, it will trigger so many in and out animations. What i want is when hover out, it would stop the hover-in animation and start the hover-out animation.


Here is the demo code: 


Again, i may make a stupid question and hope someone could help.



See the Pen XXREZb by DanielYKPan (@DanielYKPan) on CodePen

Link to comment
Share on other sites

Hi daniel_pan  :),


Welcome to the forums. 


You can just set up one timeline and then play() on hover and reverse() on hover out.


Here's a fork of your pen: 

See the Pen mVmxgK?editors=101 by PointC (@PointC) on CodePen


Hopefully this helps. :)


Thanks for your reply!


I tried this before, and it did what i want for the hove in and out scenario.

But i don't like the reverse animation because the staggerTo from reverse would start from the last item. I want it to start from the first item when hover out.


Any idea i could achieve this?

Link to comment
Share on other sites

  • Solution

Hi daniel_pan :)


pls try these ways :


See the Pen jWmKQz by MAW (@MAW) on CodePen

  tl.staggerTo(items, 0.15, {y:-10,opacity:1}, 0.1)
    .addPause(null,function(){ if(toggle)tl.play(); } )
    .staggerTo(items, 0.15, {y:0,opacity:0.2}, 0.1)

function over(){  tl.restart(); toggle=0; }
function out(){  tl.play(); toggle=1; }



See the Pen PZmaxp by MAW (@MAW) on CodePen

function over(){  TweenMax.staggerTo(items, 0.2, {y:-10,opacity:1}, 0.1) };
function out(){  TweenMax.staggerTo(items, 0.2, {y:0,opacity:0.2}, 0.1) };

with second way , if you need to use timelines ; you should to define 2 timelines , or clean your timeline before adding new tweens :

See the Pen GomGwN by MAW (@MAW) on CodePen

  • Like 4
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...