可以通过编程方式链接jquery动画吗?

我有这个代码:

jQuery('#flash').animate({opacity: 0.35}, 200) .animate({opacity: 0}, 200) .animate({opacity: 0.35}, 200) .animate({opacity: 0}, 200) .animate({opacity: 0.35}, 200) .animate({opacity: 0}, 600) 

而且我不确定我希望它改变状态的次数。 有没有办法以编程方式链接动画而不必通过编辑动画链来添加/删除链元素?

不,您无法在不编辑动画队列的情况下链接动画。 如果您想链接一个变量,但有限次数可以轻松完成循环:

 var flash = $("#flash"); for (var i=0; i 

如果你想要一个无限循环,或者在将来要满足条件时停止循环,你想要在动画队列上挂钩回调,重启函数:

 var flash = $("#flash"); function anim() { // if (condition) flash.animate({opacity: 0.35}, 200).animate({opacity: 0}, 200, anim); // call "recursively": ^^^^ } anim(); 

如果我理解正确你只需要一个FOR循环:

 function animate_n_times(n) { var flash = $('#flash'); for(var i=0;i 

然后叫做:

 animate_n_times(3); 

您可以使用循环链接动画,如果这是您正在寻找的。

 var $flash = jQuery('#flash'), i; for (i = 0; i < 10; i++) { $flash = $flash.animate({opacity: 0.35}, 200) .animate({opacity: 0}, 200); } 

有一个更短的选择,使用扩展jquery-timing :

动画给定次数:

 $('#flash').repeat().animate({opacity:0.35}, 200) .animate({opacity:0}, 200).until(10); 

作为无限循环:

 $('#flash').repeat().animate({opacity:0.35},200).animate({opacity:0},200,$); 

有关详细信息,请参阅.repeat() ,. until(count)和.animate(…,$)的API。