Como faço para descobrir com jQuery se um elemento está sendo animado?

Eu estou tentando mover alguns elementos na página, e durante o tempo em que a animação ocorre, eu quero ter “estouro: oculto” aplicado a um elemnt e “estouro” de volta para “auto” uma vez que a animação seja concluída.

Eu sei jQuery tem uma function de utilidade que determina se algum elemento está sendo animado, mas não consigo encontrá-lo em qualquer lugar nos docs

if( $(elem).is(':animated') ) {...} 

Mais informações : http://docs.jquery.com/Selectors/animated


Ou:

 $(elem) .css('overflow' ,'hidden') .animate({/*options*/}, function(){ // Callback function $(this).css('overflow', 'auto'); }; 

Alternativamente, para testar se algo não está animado, você pode simplesmente adicionar um “!”:

 if (!$(element).is(':animated')) {...} 

Se você quiser aplicar css em elementos animados, você pode usar o :animated pseudo seletor :animated e fazer assim,

 $("selector").css('overflow','hidden'); $("selector:animated").css('overflow','auto'); 

fonte: https://learn.jquery.com/using-jquery-core/selecting-elements/

 $('selector').click(function() { if ($(':animated').length) { return false; } $("html, body").scrollTop(0); }); 

Se você estiver usando animação css e atribuir a animação usando um class name específico, você poderá verificá-la assim:

 if($("#elem").hasClass("your_animation_class_name")) {} 

Mas certifique-se de que você está removendo o nome da class que está manipulando a animação, depois que a animação terminar!

Este código pode ser usado para remover o class name da class name após a conclusão da animação:

 $("#elem").on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ $(this).removeClass("your_animation_class_name"); });