我有多少个div,它们应该依次展开。
每个div的展开动画必须延迟到div的动画完成。这按预期工作。.delay()在.animate()后被忽略
在每个步骤的动画之后,我希望能够进一步延迟下一个div的动画。我的问题是,jQuery完全忽略了动画之后的延迟。
.animate()
之后拨打.delay()
有什么不对吗?
这是我当前的代码:
$('div').each(function(index){
$(this).delay(index*$stepspeed).animate({height: $stepheight[index]}, $stepspeed).delay((index+1)*$stepdelay+$startdelay);
});
回答
我以if
跳过第一div
延迟解决它。
这是我使用的代码:
$('div').each(function(index){
if(index == 0) {$(this).delay($fadespeed).animate({height: $stepheight[index]}, $stepspeed);} //No delay for the first div
else {$(this).delay($fadespeed+index*$stepspeed+(index+1)*$stepdelay+$startdelay).animate({height: $stepheight[index]}, $stepspeed);}
});
结尾处的延迟无关与循环延迟下一个元素,只是增加' $ stepspeed'。 – adeneo 2013-05-03 21:43:06
所以没有办法延迟循环的下一个元素? 如果当前div是循环中的第一个div,那么在动画m之前添加延迟将需要检查。这不会是一个问题,但我认为它会添加不必要的代码... – Afterlame 2013-05-03 21:49:11
总是有超时? – adeneo 2013-05-03 21:53:48