可以通过编程方式链接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。