Maison  >  Article  >  interface Web  >  Comment détecter la fin des transitions et animations CSS3 avec jQuery ?

Comment détecter la fin des transitions et animations CSS3 avec jQuery ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 06:46:30248parcourir

How to Detect the End of CSS3 Transitions and Animations with jQuery?

Exploiter les transitions CSS3 : détecter l'achèvement avec jQuery

Lors de l'animation d'éléments à l'aide de transitions CSS3, il devient nécessaire de connaître le moment précis auquel elles se terminent effectuer des actions ultérieures. Contrairement aux animations jQuery, les transitions CSS3 n'ont pas de rappels d'achèvement intégrés.

Capturer les événements de fin de transition

Pour détecter la fin d'une transition, jQuery propose les éléments suivants script :

<code class="javascript">$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });</code>

Pour les animations, une approche similaire peut être utilisée :

<code class="javascript">$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });</code>

En transmettant toutes les chaînes d'événements préfixées, ce script fonctionnera sur plusieurs navigateurs.

Utilisation de .one() pour Single Fire

Pour garantir que le gestionnaire d'événements ne se déclenche qu'une seule fois, vous pouvez utiliser la méthode .one() de jQuery au lieu de .bind() :

<code class="javascript">$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });</code>

Dépréciation et approche moderne

La méthode .bind() de jQuery est désormais obsolète. L'approche préférée est .on(), qui fonctionne conjointement avec .off(). Voici un exemple :

<code class="javascript">$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
 function(e){
    // do something here
    $(this).off(e);
 });</code>

Cette approche garantit que la fonction de rappel ne s'exécute qu'une seule fois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn