前两篇介绍了Tween,可以藉此建立出动态效果,但动画不单单是元件本身的动态,以整个专案的视角来看,一定会有先後顺序,有时候有微妙的时间差可以创造韵律感,或是产生更多丰富的效果。
GSAP当然也针对了时间顺序提供另一组类别的函式。
Timeline定义顺序
首先,这边将gsap.timeline()
定义至一自订变数供後续使用,接下来就可以使用刚刚定义动画的to()
、from()
或fromTo()
函式,将动画定义在这个时间轴上。第一个参数一样为指定的元件,後面则定义关键影格状态与duration
动画时间,最後一个参数则可以定义Timeline上的时间段,也就是开始此动画开始的时间。
let myTimeLine = gsap.timeline();
myTimeLine.to("#my-div-one", {backgroundColor:'purple', duration: 1},2);
myTimeLine.to("#my-div-two", {backgroundColor:'yellow', duration: 1},4);
若不使用Timeline、只利用delay函式一个一个安排开始时间、建立先後顺序,对於安排多网页元件的专案来说,可想而知,管理与维护会更加复杂。除此之外,gsap.timeline()
也提供传入定义repeat
、repeatDelay
、yoyo
值的Object参数,让这个时间轴上的动画效果能具有相同的规则,供需求选择使用。
repeat
:设定时间轴上所有动画重复播放的次数。repeatDelay
:若有设定repeat
,可设定重复播放开始前,与上一段动画的时间间距。yoyo
:为boolean值,true
则会在下一次改由反方向播放动画。let myTimeLine = gsap.timeline({repeat:3,repeatDelay:3,yoyo:true});
myTimeLine.to("#my-div-one", {backgroundColor:'purple', duration: 1},2);
myTimeLine.to("#my-div-two", {backgroundColor:'yellow', duration: 1},4);
>>: Day25-设定大风吹 使用复数values.yaml
集合其实和阵列有些相似,阵列是将相同资料型态的资料收集起来,而集合是收集一群相关资料,再以特定的类别...
本文章同时发布於: Medium iT 邦帮忙 大家好,这几天较有时间,终於可以好好的思考文章 XD...
GOOGLE登入 第八步:宣告 GoogleSignInClient mgoogleSignInCl...
Samantha和Theodore在一起的时候,时常提及自己在写钢琴曲,灵感来自於和Theodore...
重新整理一下思路 我们使用jsonp的方式来避过CORS,载入资源 一般jsonp会在data外包...