Timelines 时间线
欢迎回到GSAP的入门指南。如果你没有读过前面一篇文章,你可以先去阅读一下。
接下来,让我们接着来聊是时间线功能吧。
时间线能让我们创建非常容易调节的、很灵活的顺序动画效果。下面就是一个简单的包含着三个tween动画的timeline实例效果。默认情况下,这些动画是依次添加的,他们在变化的时候也是依次执行,而且是一个执行完之后再下一个执行。
但是,如果我们想要在动画之间加一个停顿或者说间隔改怎么办呢
有一个方式就是我们可以给某个tween动画在启动前提添加一个delay。但是这样的话,一点都不灵活。又或者,如果我们想要实现动画之间在时间上重叠,又或者几个动画同时启动,这些该怎么实现呢?
位置参数 Position Parameter
这个参数能帮我们方便的实现执行顺序和执行时间点的精确控制,我们来看下这个demo。
我们可以使用各种写法——绝对的秒数,百分比,相对值等等方式来决定tween动画在什么时候开始。你可以试试下面这个demo。
特殊属性 Special Properties
Timelines可以设置的动画属性和tween动画绝大部分是一样的,比如像repeat和delay,可以让你轻松的设定整个顺序动画的动画属性。
时间线的默认设置 Timeline Defaults
如果你发现自己总是一遍又一遍的写同一个属性,那么你可以使用 defaults来进行设置。任何添加到时间线上的defaults的属性,都会被添加到这个时间线上的tween动画继承,像是通过to(),from()和fromTo()方式添加到时间线上的动画效果都是有这个继承效果的。利用这个方式可以让你的代码更简洁一些。
控制动画 Controlling your animations
我们之前讲的动画效果都是页面加载后就启动或者延迟一定时间启动。但是如果我们想要对动画有更多一点的控制能力的话该怎么做呢?
比较常见的就是比如说我们想要点击某个按钮或有了某个交互行为之后才会让元素进行动画效果。那么控制动画的几个方法呢可以帮我们实现这个需求,在tween和timeline上都有这些方法,play,pause,reverse或者是加速变化。
动画事件 Callbacks
如果你需要知道动画是什么启动的,或者是在动画的某个时机执行一些代码,那么你可以使用动画事件。所有的Tween和timelines都有这些事件。
onComplete:动画结束时触发
onStart:动画开始时触发
onUpdate:只要动画运行,每一帧都会触发(元素有属性变化时)
onRepeat:每次动画重复时触发
onReverseComplete:当动画反向执行后运动到变化起始点时触发
插件 Plugins
现在你已经掌握了核心的概念,插件是一种可以让你的动画瞬间拥有钞能力的一种方式。只要添加一点代码,用上GSAP的ScrollTrigger这个插件,你可以让你的tween和timeline动画和页面的滚动产生联动
让元素可以拖拽,可以扔出去,可以旋转……
让元素沿着svg的路径运动,可以使用MotionPathPlugin,甚至可以直接在浏览器中修改SVG的路径
有些插件只有在你假如Club GreenSock会员时才能使用,但是你可以通过codeopen来免费试用他们。
Getting Started with GSAP - continued
i
你想要更加深入了解position parameter么?可以看看这篇文章
i
客户们真的太喜欢在最后时间还要去要求调整动画细节了!timescale方法就在这个时候用来调整整个动画的速度就非常方便,也不用我们去调整整个动画的时长或者延迟。