我想为一组元素提供相同的动画,但每个元素都会逐渐延迟,以便动画形成一种“波浪”。
我做了一个小提琴; http://jsfiddle.net/ttLJ3/
基本上每个元素都会以50ms的增量延迟,做一件事,等待300ms并撤消它。
它似乎根本不起作用。它什么都不做。如果我删除.delay(300).show()
,则所有元素都会立即消失。
我该如何使这项工作?提前致谢! :)
答案 0 :(得分: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);