a.s*_*nko 1 javascript animation timeline greensock
我可以组合多个补间并使用一个简易功能运行它们吗?像这样的东西:
var el = $('#some-element');
var tw1 = new TweenMax.to(el, 1, {left: 100});
var tw2 = new TweenMax.to(el, 1, {left: 200});
var tw3 = new TweenMax.to(el, 1, {left: 300});
var tl = new TimelineMax({ease:Power2.easeOut})
.add(tw1)
.add(tw2)
.add(tw3);
Run Code Online (Sandbox Code Playgroud)
我已经为这个问题制作了沙箱示例:http://codepen.io/panych/pen/qpjCK
那么如何使用常见的缓动来移动框?
UPD
新沙箱:
我们需要使用一个常见的缓动函数来移动第一个示例中的框,如第二个示例中所示,但不删除中间补间.
一种方法是补间时间轴的进度值,如下所示:
var el = $('#some-element');
var tw1 = new TweenMax.to(el, 1, {left: 100});
var tw2 = new TweenMax.to(el, 1, {left: 200});
var tw3 = new TweenMax.to(el, 1, {left: 300});
var tl = new TimelineMax()
.add(tw1)
.add(tw2)
.add(tw3);
TweenLite.to(tl, tl.duration, {progress:1, ease:Power2.easeOut});
Run Code Online (Sandbox Code Playgroud)
此外,add()方法允许您添加补间数组,然后将对齐作为字符串传递,如下所示:
var el = $('#some-element');
var tw1 = new TweenMax.to(el, 1, {left: 100});
var tw2 = new TweenMax.to(el, 1, {left: 200});
var tw3 = new TweenMax.to(el, 1, {left: 300});
var tl = new TimelineMax()
.add([tw1,tw2,tw3], 'sequence');
Run Code Online (Sandbox Code Playgroud)
就像那样阵列中的补间一个接一个地播放.
你也可以补充时间线的时间属性,如Jamie Jefferson在这个代码中说明:
http://codepen.io/jamiejefferson/pen/zsEAt
看一下具有惊人用途的add()方法.
罗德里戈.
编辑:我忘了在add()方法中添加position参数.此方法接受位置参数和对齐参数,由于两者都是字符串,因此必须包含两者.
所以代码看起来像这样:
var el = $('#some-element');
var tw1 = new TweenMax.to(el, 1, {left: 100});
var tw2 = new TweenMax.to(el, 1, {left: 200});
var tw3 = new TweenMax.to(el, 1, {left: 300});
var tl = new TimelineMax()
.add([tw1,tw2,tw3], '+=0', 'sequence');
Run Code Online (Sandbox Code Playgroud)
在+ = 0的情况下,我们告诉GSAP在时间线的末尾按顺序包含所有这些元素.