Un moyen d'empêcher l'animation CSS de s'arrêter lors de la suppression d'une classe
P粉412533525
2023-08-29 16:15:06
<p>J'ai une grille.
Lorsque je reçois un message de mise à jour du backend, je dois mettre en surbrillance les lignes en orange dans les 3 secondes.
Lorsque je reçois une mise à jour, j'ajoute la classe CSS « surligner » à ma ligne et je joue mon animation. </p>
<p>
<pre class="brush:css;toolbar:false;">.highlight {
nom de l'animation : surligner ;
durée de l'animation : 3 s ;
}
@keyframes surligner {
0% {
couleur de fond : orange ;
}
99,99 % {
couleur de fond : orange ;
}
}</pré>
</p>
<p>Pour une raison quelconque liée au flux de messages dans l'application, je dois supprimer la classe de surbrillance avant la fin des 3 secondes afin que mon animation cesse de fonctionner. Je veux que mon animation soit jouée jusqu'à la fin des 3 secondes. </p>
<p>Comment puis-je faire jouer mon animation jusqu'à la fin même si je supprime la classe de surbrillance ? </p>
Une approche possible serait d'ajouter un attribut de données à l'élément, puis d'y ajouter un écouteur d'événement animationend afin que lorsque l'animation se termine, l'écouteur d'événement sache qu'il faut supprimer la classe. Voir exemple ci-dessous.