Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery wait till all page animations are done

Tags:

I know how to wait till an animation is done with

$('#element').animate(speed,function(){ //code here }); 

and with multiple elements with

$('#element1, #element2').promise().done(function(){ //code here }); 

but how do I wait till all of the elements on the page are done animating? I would much rather not just put in every element that I'm waiting for in there.

like image 527
Brian Leishman Avatar asked Nov 30 '11 21:11

Brian Leishman


2 Answers

To select everything that's being animated currently, just do $(":animated") http://api.jquery.com/animated-selector/

Combining that with what you already have there, it'd just be

$(":animated").promise().done(function() {     //code here }); 
like image 166
Jeremy T Avatar answered Oct 23 '22 21:10

Jeremy T


The answer given by Jeremy T works fine - although based on the comments on the jquery site he linked (http://api.jquery.com/animated-selector/), it would be a faster solution to add a class to each element on the page that may be animated, and then select them using

    $('.animationclass').filter(':animated').promise().done(function() { //Your function }); 
like image 31
Tony Carbone Avatar answered Oct 23 '22 21:10

Tony Carbone