Maison > interface Web > tutoriel CSS > Comment puis-je détecter la fin des transitions CSS ?

Comment puis-je détecter la fin des transitions CSS ?

Mary-Kate Olsen
Libérer: 2024-11-28 00:12:10
original
745 Les gens l'ont consulté

How Can I Detect the Completion of CSS Transitions?

Rappels sur les transitions CSS

Requête : Peut-on recevoir une notification lorsqu'une transition CSS est terminée ?

Réponse : Dans les navigateurs prenant en charge les rappels, un événement est déclenché à la fin de la transition. L'événement varie selon les navigateurs :

  • Webkit (Chrome, Safari) : webkitTransitionEnd
  • Firefox : transitionend
  • IE9 : msTransitionEnd
  • Opera : oTransitionEnd

WebKit Problème TransitionEnd

Attention, webkitTransitionEnd peut ne pas toujours se déclencher. Cela se produit lorsque l'animation n'a aucun effet visible sur l'élément. Pour contourner ce problème, envisagez un délai d'attente pour déclencher le gestionnaire d'événements si l'événement n'est pas déclenché comme prévu.

Structure de code recommandée

var transitionEndEventName = "XXX"; // Specify the appropriate event name
var elemToAnimate = ... // Element to be animated
var done = false;
var transitionEnded = function() {
    done = true;
    // Code to execute when transition finishes
    elemToAnimate.removeEventListener(transitionEndEventName, transitionEnded, false);
};
elemToAnimate.addEventListener(transitionEndEventName, transitionEnded, false);

// Animation triggering code here

// Fallback for browsers without event notifications
setTimeout(function() {
    if (!done) {
        transitionEnded();
    }
}, XXX); // Calculate XXX based on animation time and grace period
Copier après la connexion

Remarque : Reportez-vous à « Comment normaliser les fonctions de transition CSS3 dans les navigateurs ? » pour normaliser les noms d'événements de transition.

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