user342391
user342391

Reputation: 7847

How to delay jquery animation?

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();

Upvotes: 17

Views: 46639

Answers (2)

Nick Craver
Nick Craver

Reputation: 630627

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");

Upvotes: 13

user113716
user113716

Reputation: 322612

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().

Upvotes: 37

Related Questions