Tenho uma animação que estou declarando e reproduzindo usando JS, mas quando a animação é reproduzida, meu ouvinte de eventos não dispara.
Aqui está o arquivo HTML:
let anim = document.getElementById("anim");
const animkeyFrames = new KeyframeEffect(
anim,
[{
transform: `translate3d(0px, 0px, 0px)`
}, // keyframe
{
transform: `translate3d(0px, ${200}px, 0px)`
},
], {
// keyframe options
duration: 1000,
iterations: "1",
},
);
let animation = new Animation(animkeyFrames, document.timeline);
anim.addEventListener('animationstart', () => {
console.log("STARTED");
})
animation.play();
#anim {
top: 10px;
left: 10px;
width: 100px;
height: 100px;
background-color: black;
position: absolute;
}
<div id="anim"></div>
Quero que "STARTED" seja registrado quando a animação for reproduzida, mas nada acontecer.
Não há
animationstart
evento paraAnimation
.Você pode fazer algo assim
e durante a animação use um loop ou um loop assíncrono ou algum outro meio para obter várias propriedades da
Animation
instância https://drafts.csswg.org/web-animations/#the-animation-interface .