Way to prevent CSS animation from stopping when removing a class
P粉412533525
2023-08-29 16:15:06
<p>I have a grid.
When I receive an update message from the backend, I need to highlight the rows in orange within 3 seconds.
When I receive an update I add the css class 'highlight' to my row and play my animation. </p>
<p>
<pre class="brush:css;toolbar:false;">.highlight {
animation-name: highlight;
animation-duration: 3s;
}
@keyframes highlight {
0% {
background-color: orange;
}
99.99% {
background-color: orange;
}
}</pre>
</p>
<p>Due to some reason with the message flow in the application, I need to remove the highlight class before the 3 seconds are up so that my animation stops working. I want my animation to play until the end of 3 seconds. </p>
<p>How can I make my animation play to the end even if I delete the highlight class? </p>
One possible approach would be to add a data-attribute to the element and then add an animationend event listener to it so that when the animation completes, the event listener knows to remove the class. See example below.