是否可以在yui3中同步多个动画,以便它们一起进步?类似于jquery 1.4路线图中提到的并在此示例http://ejohn.org/files/sync中演示的内容。
答案 0 :(得分:3)
由于我不想找到关于SO的问题的非答案,我以为我会投入。
我想出了这一点,感谢错误报告中的信息(http://yuilibrary.com/projects/yui3/ticket/2528886)
这就是我所拥有的:两个盒子,并排。我希望左框缩小(宽度方向),同时右框增长。
(我使用div,浮点数:左/浮右和溢出:隐藏,由于我前段时间做出的一些不幸的决定,但这应该适用于大多数其他配置。)
这就是我的所作所为:
var anim = new Y.Anim({
duration: 1.0
});
var elmLeftBox = Y.one('#leftBox');
var elmRightBox = Y.one('#rightBox');
var intWidth = parseInt(elmLeftBox.getComputedStyle('width'), 10);
anim.on('tween', function(e) {
var elapsedTime = this.get('elapsedTime');
var duration = this.get('duration');
var easing = this.get('easing');
var leftPos = easing(elapsedTime, intWidth, (-1 * intWidth), duration*1000);
var rightPos = easing(elapsedTime, 0, intWidth, duration*1000);
elmLeftBox.setStyle('width', leftPos);
elmRightBox.setStyle('width', rightPos);
});
anim.on('end', function(evt) {
//clean up after myself - don't want hardcoded widths
elmLeftBox.setStyle('width', 0);
elmRightBox.setStyle('width', '100%');
});
anim.run();
完美无缺。祝你好运!
答案 1 :(得分:1)
YUI3并不正式支持,但您可以通过订阅补间事件并自行修改值来做类似的事情。