在YUI3中同步动画?

时间:2010-01-13 00:53:45

标签: javascript animation yui yui3

是否可以在yui3中同步多个动画,以便它们一起进步?类似于jquery 1.4路线图中提到的并在此示例http://ejohn.org/files/sync中演示的内容。

2 个答案:

答案 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并不正式支持,但您可以通过订阅补间事件并自行修改值来做类似的事情。