Maison > interface Web > js tutoriel > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-11-04 10:14:29
original
173 Les gens l'ont consulté

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

Surveillance de l'achèvement des transitions et des animations CSS3 dans jQuery

Dans le développement Web, il est souvent souhaitable de faire disparaître un élément et de le supprimer ensuite de le DOM une fois l'animation terminée. Bien que cela soit simple avec les capacités d'animation de jQuery, l'étendre aux transitions CSS3 nécessite un mécanisme pour détecter leur conclusion.

Heureusement, jQuery fournit des pistes pour résoudre ce problème :

Transitions

Pour détecter la fin d'une transition CSS via jQuery, utilisez les classeurs d'événements suivants :

$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
Copier après la connexion

Mozilla développe ce point plus en détail sur https://developer.mozilla.org/en -US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions#Detecting_the_start_and_completion_of_a_transition

Animations

Pour les animations, l'approche est similaire :

$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Copier après la connexion

Un point crucial à noter est qu'en utilisant simultanément la méthode bind() avec toutes les chaînes d'événements préfixées par le navigateur, vous pouvez garantir la prise en charge de tous les navigateurs dotés de cette fonctionnalité.

Optimisation de la gestion des événements

Pour limiter le déclenchement du gestionnaire à une seule occurrence, utilisez la méthode .one() de jQuery, comme ceci :

$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Copier après la connexion

Dépréciation de la méthode et alternatives modernes

Il convient de reconnaître que la méthode bind() de jQuery est obsolète depuis jQuery 1.7 au profit de la méthode on(). De plus, vous pouvez exploiter la méthode off() dans la fonction de rappel pour garantir une exécution unique, comme démontré dans cet exemple :

$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
 function(e){
    // do something here
    $(this).off(e);
 });
Copier après la connexion

Cette approche a le même effet que l'utilisation de la méthode one(). .

Ressources supplémentaires

  • [.off()](https://api.jquery.com/off/)
  • [.one()](https://api.jquery.com/one/)

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal