CSSアニメーションが開始終了した時に処理を行う animationstart
.circle {
width: 100px;
height: 100px;
background-color: aqua;
}
.circle.action {
/* animation: act 1s infinite; */
animation: act 1s;
}
@keyframes act {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}<div class="circle"></div>const myRect = document.querySelector(".circle");
myRect.addEventListener("click", (e) => {
e.target.classList.toggle("action");
});
myRect.addEventListener("animationstart", () => {
console.log("アニメーションスタート");
});
myRect.addEventListener("animationiteration", () => {
console.log("アニメーション繰返し開始");
});
myRect.addEventListener("animationend", () => {
console.log("アニメーションエンド");
});animationstart アニメーションが開始したことを検知する
animationiteration アニメーションの繰り返しが発生したことを検知する (infiniteが設定されている時発生)
animationend アニメーションが完了したことを検知する (infiniteが設定されている時発生しない)