当应用程序到达前台时,如果需要重新启动基于块的动画,可以使用以下方法:
requestAnimationFrame
或者 setTimeout
等定时器函数来控制动画的播放。style
属性设置为初始值,或者将 SVG 元素的 begin
属性设置为 indefinite
。const box = document.querySelector('.box');
function startAnimation() {
box.style.animation = 'none';
void box.offsetWidth; // 触发重绘
box.style.animation = 'my-animation 2s';
}
box.addEventListener('click', () => {
startAnimation();
});
在这个示例中,当用户点击动画元素时,会触发 startAnimation
函数,该函数会先将动画元素的 style
属性设置为 none
,然后通过 void box.offsetWidth
触发重绘,最后将动画元素的 style
属性设置为动画样式,从而重新启动动画。
需要注意的是,这种方法只适用于基于块的动画,对于其他类型的动画可能需要使用不同的方法来实现重新启动。
领取专属 10元无门槛券
手把手带您无忧上云