<!doctype html> <meta charset=utf-8> <title>Animation of pseudo-element is stopped properly in presence of dynamic DOM change that reconstructs the layout tree</title> <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> <link rel="author" title="Mozilla" href="https://mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-animations/"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1564366"> <link rel="match" href="animation-pseudo-dynamic-001-ref.html"> <style> @keyframes anim { from { background-color: red } to { background-color: red } } .test { display: flex; } .test::before { content: ""; display: block; width: 100px; height: 100px; background-color: green; } .tweak::before { animation: anim 2s linear infinite; } </style> <div class="test tweak">foo</div> <script> onload = function() { const div = document.querySelector(".test"); const pseudoStyle = getComputedStyle(div, "::before"); div.getBoundingClientRect(); // update layout div.classList.remove("tweak"); div.innerHTML = ""; // This is necessary to trigger the bug. } </script>