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

Pourquoi ma transition CSS est-elle ignorée ou mon rappel est-il omis dans mon jeu ?

Barbara Streisand
Libérer: 2024-11-01 16:09:02
original
579 Les gens l'ont consulté

Why Is My CSS Transition Skipped or Callback Omitted in My Game?

Transition CSS ignorée ou rappel omis

Dans cette enquête aux multiples facettes, le développeur exprime sa perplexité face aux incohérences intermittentes dans les transitions CSS et les invocations de rappel au sein d'un projet de jeu. Malgré le remplacement de jQuery par du JavaScript pur, les tentatives de transition des positions des projectiles à l'aide de CSS n'ont pas fonctionné comme prévu, nécessitant un délai d'attente de 1 ms pour lancer la transition. De plus, le rappel de transition échouait parfois, laissant le développeur perplexe.

Pour approfondir les subtilités de ce problème, nous devons reconnaître que les transitions CSS reposent sur des changements dans le style calculé d'un élément. Lorsque les styles en ligne sont définis, comme dans ce cas, le navigateur peut ne pas mettre à jour immédiatement le style calculé, ce qui entraîne une inadéquation entre les propriétés d'élément attendues et réelles.

Lorsque la propriété de transition est appliquée, les valeurs calculées de gauche et de haut les valeurs peuvent déjà correspondre aux valeurs prévues, laissant la transition sans action à effectuer. Par conséquent, il est ignoré et l'événement transitionend n'est pas déclenché.

Pour remédier à cela, le développeur peut utiliser des techniques pour forcer un recalcul de style, comme accéder à offsetHeight de l'élément ou déclencher une redistribution à l'aide des méthodes DOM. Par exemple :

<code class="javascript">let animdiv = document.getElementById('animid');
animdiv.addEventListener("transitionend", function(event) { ... }, false);
// force a reflow
animdiv.offsetTop;
Object.assign(animdiv.style, {left: "100px", top: "100px" });</code>
Copier après la connexion

En forçant un recalcul de style, le style calculé sera à jour, garantissant que la transition peut suivre avec précision les changements de position de l'élément et déclencher correctement l'événement transitionend.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!