How to delay jquery animation?

2019-01-11 07:16发布

问题:

I can't seem to delay the showing of a div. I want to delay the animation by about 20 seconds is this possible???

$("#microcharcounter").delay(10000).show();

回答1:

Try this:

$("#microcharcounter").delay(10000).show(0);

or this:

$("#microcharcounter").delay(10000).queue(function(n) {
    $(this).show();
    n();
});

The reason for this is that .delay() will only delay items in an animation queue. So you can make .show() a short animation by adding a duration of '0', or add it to the queue with .queue().



回答2:

You can do it like this:

setTimeout(function() {
  $("#microcharcounter").show();
}, 20000);

The problem with .delay() and .show() (without a duration), is that .show() isn't an animation, it's an immediate effect that's not on the fx queue at all. You could however give it a duration, like this:

$("#microcharcounter").delay(20000).show("fast");