如何延迟jquery动画?

如何延迟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()只会延迟动画队列中的项目。

我似乎不能延迟一个div的播放。我想延迟动画大约20秒。这可能吗

$("#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上搜索延迟。因此,这篇文章帮助了我好几次:)