<!DOCTYPE html> <html class="reftest-wait"> <title>background-position-x animation after finish</title> <style> @keyframes holdBackgroundPosition { from,to { background-position-x: 100%; } } #test { height: 100px; width: 100px; background-repeat: no-repeat; background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF/wAAAAAAQaMSAwAAABJJREFUeNpiYBgFo2AwAIAAAwACigABtnCV2AAAAABJRU5ErkJggg==); /* a 25x25 px red box */ animation: holdBackgroundPosition 0.01s; background-position-x: 50%; } </style> <div id="test" class="reftest-opaque-layer"></div> <script> document.getElementById("test").addEventListener("animationend", () => { requestAnimationFrame(() => { document.documentElement.classList.remove("reftest-wait"); }) }, false); </script>