动画循环中的jQuery .delay()

时间:2011-05-28 18:07:57

标签: javascript jquery animation

我正在尝试用jQuery做一些基本的动画。我希望淡入一些元素,但我想淡入,第二个元素,而第一个元素是中途完成,第三个元素,而第二个元素中途完成,等等。

我知道我可以这样做:

$('#element1).fadeIn(1000);
$('#element2).delay(500).fadeIn(1000);
$('#element3).delay(500).fadeIn(1000);
etc.

循环看起来更优雅但我的问题是,为什么以下代码不能像我期望的那样工作?

for (var i = 1; i <= 5; i++;) {
    $('#box' + i).fadeIn(2000).delay(500);
}

我希望每次循环迭代之间都会出现延迟,但所有动画都会同步发生。

我在哪里看到这个错误?

1 个答案:

答案 0 :(得分:3)

每个元素都有自己的特效队列。对于每个元素,必须有不同的延迟值:

for (var i = 0; i < 5; i++) {
    $('#box' + (i + 1)).delay(500 * i).fadeIn(1000);
}

http://jsfiddle.net/cDcU7/1/