Maison >interface Web >tutoriel CSS >Comment déclencher des transitions CSS sur les éléments ajoutés ?

Comment déclencher des transitions CSS sur les éléments ajoutés ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 04:20:29632parcourir

How to Trigger CSS Transitions on Appended Elements?

Déclenchement de transitions CSS sur les éléments ajoutés

Pourquoi les animations CSS immédiates sont-elles ignorées ?

Lorsque des éléments sont ajoutés au DOM , les navigateurs effectuent souvent des redistributions par lots pour optimiser les performances. Cependant, cela peut conduire à ignorer les transitions CSS immédiates, ce qui entraîne le rendu immédiat de l'état final de la transition.

Comment et pourquoi ces méthodes fonctionnent-elles ?

  • setTimeout : Retarde l'ajout de la classe à un nouveau cycle JavaScript, garantissant qu'il existe deux valeurs de style distinctes que le moteur de rendu doit interpoler pendant la transition.
  • offsetWidth : Force une redistribution en accédant à une propriété provoquant la redistribution, déclenchant le calcul de la valeur de style initiale.
  • focus : Déclenche une redistribution synchrone, permettant à la transition de démarrer immédiatement.

Existe-t-il d'autres moyens ?

D'autres méthodes pour déclencher des transitions sur les éléments ajoutés incluent :

  • requestAnimationFrame : Planifie l'ajout de classe dans le cadre suivant du navigateur, en le séparant du cycle d'ajout initial.
  • MutationObserver : Observe les modifications du DOM et déclenche la transition en conséquence.

Solution préférée

La solution préférée est subjective, mais de nombreux développeurs préfèrent accéder à offsetWidth car elle applique une redistribution synchrone et garantit l'exécution de la transition. Cette méthode est également prise en charge dans les principaux navigateurs.

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