Maison > interface Web > tutoriel CSS > Pourquoi mes transitions CSS ne parviennent-elles parfois pas à s'animer ?

Pourquoi mes transitions CSS ne parviennent-elles parfois pas à s'animer ?

Susan Sarandon
Libérer: 2024-11-19 00:12:02
original
1048 Les gens l'ont consulté

Why Do My CSS Transitions Sometimes Fail to Animate?

Comprendre les problèmes de redistribution CSS dans les transitions du navigateur

Lors de la création d'un curseur d'image réactif à l'aide de transitions CSS3, un défi courant se pose lorsque l'on tente de déclencher une animation lorsque les propriétés CSS sont modifiées. Malgré l'initialisation de la propriété de transition, les navigateurs peuvent ignorer les modifications et ne pas exécuter l'animation souhaitée.

Solution : forcer la redistribution pour déclencher l'animation

La solution à ce problème réside dans forcer une redistribution du navigateur, qui recalcule la mise en page et le rendu de la page. Ceci peut être réalisé en accédant à la propriété offsetHeight d'un élément. La fonction JavaScript suivante accomplit cela :

function reflow(elt) {
  console.log(elt.offsetHeight);
}
Copier après la connexion

Implémentation :

Pour implémenter la solution, appelez la fonction reflow() après avoir modifié les propriétés CSS qui déclenchent l'animation . Par exemple :

ul.style.transition = 'none 0s linear';
ul.style.left = '-600px';
ul.style.transition = 'all 0.2s ease-out';
reflow(ul); // Forces a reflow
ul.style.left = '0px';
Copier après la connexion

Remarque :

Une optimisation récente implique le remplacement de console.log(elt.offsetHeight) par void(elt.offsetHeight), comme optimiseur est moins susceptible d'ignorer cette déclaration comme un effet secondaire potentiel.

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