级联动画

时间:2012-01-24 02:59:59

标签: javascript jquery jquery-animate

我想为一组元素提供相同的动画,但每个元素都会逐渐延迟,以便动画形成一种“波浪”。

我做了一个小提琴; http://jsfiddle.net/ttLJ3/

基本上每个元素都会以50ms的增量延迟,做一件事,等待300ms并撤消它。

它似乎根本不起作用。它什么都不做。如果我删除.delay(300).show(),则所有元素都会立即消失。

我该如何使这项工作?提前致谢! :)

2 个答案:

答案 0 :(得分:1)

我能在这里解决你的问题。

http://jsfiddle.net/ttLJ3/1/

由于delay适用于fx queue,因此您必须传入一个整数的延迟才能工作,否则hide和show方法将立即执行。让它看起来好像根本没有发生任何事情。我将0传递给每个隐藏和显示调用以解决问题。

$(this).delay(50 * index).hide(0).delay(300).show(0);

答案 1 :(得分:1)

根据.hide() doco,“当提供持续时间时,.hide()成为动画方法。”显然,这意味着如果您不提供持续时间,则不会在动画队列中完成隐藏,因此不能与.delay()一起使用。

因此,请尝试向.hide().show()添加较短的持续时间:

$(this).delay(50 * index).hide(1).delay(300).show(1);

更新了演示:http://jsfiddle.net/ttLJ3/2/