Maison > interface Web > tutoriel CSS > Comment puis-je normaliser les événements de fin de transition CSS3 dans différents navigateurs à l'aide de JavaScript ?

Comment puis-je normaliser les événements de fin de transition CSS3 dans différents navigateurs à l'aide de JavaScript ?

Susan Sarandon
Libérer: 2024-12-24 00:00:15
original
761 Les gens l'ont consulté

How Can I Normalize CSS3 Transition End Events Across Different Browsers Using JavaScript?

Normalisation entre navigateurs des événements de fin de transition CSS3

Énoncé du problème :

Dans différents navigateurs, les événements de fin de transition CSS3 sont déclenchés différemment : "webkitTransitionEnd" dans Webkit, "transitionEnd" dans Firefox et "oTransitionEnd" dans Opera. Comment pouvons-nous gérer ces variations de manière transparente en JavaScript pur ?

Solution :

La mise en œuvre d'écouteurs d'événements distincts pour chaque navigateur est inefficace et fastidieuse. Au lieu de cela, une solution plus élégante proposée dans Modernizr peut être utilisée :

function transitionEndEventName() {
  var el = document.createElement('div'),
      transitions = {
        'transition':'transitionend',
        'OTransition':'otransitionend',
        'MozTransition':'transitionend',
        'WebkitTransition':'webkitTransitionEnd'
      };

  for (var i in transitions) {
    if (transitions.hasOwnProperty(i) && el.style[i] !== undefined) {
      return transitions[i];
    }
  }
}
Copier après la connexion

Cette fonction vérifie les événements de transition pris en charge dans le navigateur actuel en créant un élément et en parcourant les noms d'événements potentiels. Il renvoie le nom de l'événement approprié lorsqu'il est trouvé.

Pour utiliser cette solution :

var transitionEnd = transitionEndEventName();
element.addEventListener(transitionEnd, theFunctionToInvoke, false);
Copier après la connexion

Cette approche garantit la compatibilité entre navigateurs et évite le reniflage du navigateur ou l'attribution de plusieurs événements.

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