如何延迟jquery动画?
我似乎不能延迟一个div的播放。我想延迟动画大约20秒。这可能吗如何延迟jquery动画?,jquery,animation,delay,Jquery,Animation,Delay,我似乎不能延迟一个div的播放。我想延迟动画大约20秒。这可能吗 $("#microcharcounter").delay(10000).show(); 试试这个: $("#microcharcounter").delay(10000).show(0); 或者这个: $("#microcharcounter").delay(10000).queue(function(n) { $(this).show(); n(); }); 原因是.delay()只会延迟动画队列中的项目。
$("#microcharcounter").delay(10000).show();
试试这个:
$("#microcharcounter").delay(10000).show(0);
或者这个:
$("#microcharcounter").delay(10000).queue(function(n) {
$(this).show();
n();
});
原因是
.delay()
只会延迟动画队列中的项目。因此,您可以通过添加持续时间“0”来制作.show()
短动画,或将其添加到队列中。您可以这样做:
setTimeout(function() {
$("#microcharcounter").show();
}, 20000);
$("#microcharcounter").delay(20000).show("fast");
and(没有持续时间)的问题是,.show()
不是动画,它是一种根本不在fx
队列中的即时效果。但是,您可以给它一个持续时间,如下所示:
setTimeout(function() {
$("#microcharcounter").show();
}, 20000);
$("#microcharcounter").delay(20000).show("fast");
@尼克-刚刚添加了
n()代码>,但当它是最后一个项目时是否有必要?是的,如果你以后调用另一个动画,例如,best to safe IMO,或者你可以调用$(this).show().dequeue()
,这就是我在处理$(this)
,反正对我来说有点干净。@Nick-啊,我明白了。刚刚做了一个测试,它确实无限期地阻塞了队列。谢谢你的提示o) @Simon_Weaver它看起来像是传递给回调函数的函数,将使下一个项出列,或者在本例中,我猜它是在将特定函数(包含$(this).show()
)出列因此,它不再在队列中,任何稍后出现的动画都将正确运行。当我需要使用setTimeout时,总是在google上搜索延迟。因此,这篇文章帮助了我好几次:)