我正在通过未知数量的步骤为元素的顶部/左侧css值设置动画。我正在使用以下代码存储动画每一步所需的css值:

paths = [{ left:-300 }, { top:-161 }, { left:-402 }];


然后,我可以通过以下方式运行动画:

$element.animate(paths[0]).animate(paths[1]).animate(paths[2]);


这样,每个动画都会在上一个动画结束时开始播放:效果很好。但是,如果我想将步数从3(从左上到左)增加到6,该怎么办?还是50?如何链接功能未知次数?

最佳答案

$element.animate(paths.shift(), function next() {
    $(this).animate(paths.shift(), paths.length && next);
});


http://jsfiddle.net/Xsz8w/2/

需要paths.length && next来防止无限的回调调用。

关于javascript - 链功能未知次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15337560/

10-12 07:01