web-dev-qa-db-fra.com

Comment savoir avec jQuery si un élément est animé?

J'essaie de déplacer certains éléments sur la page et, pendant le déroulement de l'animation, je souhaite que "débordement: masqué" soit appliqué à un élément, puis "débordé" sur "auto" une fois l'animation terminée.

Je sais que jQuery a une fonction utilitaire qui détermine si un élément est animé mais je ne le trouve nulle part dans la documentation

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

Plus d'infos: http://docs.jquery.com/Selectors/animated


Ou:

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

Alternativement, pour tester si quelque chose n'est pas animé, vous pouvez simplement ajouter un "!":

if (!$(element).is(':animated')) {...}
5
Tim
$('selector').click(function() {
  if ($(':animated').length) {
    return false;
  }

  $("html, body").scrollTop(0);
});
0
anand vishwakarma

Si vous voulez appliquer css aux éléments animés, vous pouvez utiliser le pseudo-sélecteur :animated et le faire comme ceci,

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

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

0
Lucky