今天在博客上看到有人问
js定时器-----离开当前页面原本匀速运动的div加速了,回到页面若干时间恢复匀速???
他是js定时器控制一个盒子做旋转动画 离开页面后js还在执行 但是盒子这个dom却被浏览器消除了 以至于再次进入该页面时动画会加速执行
解决方法 离开页面时清除定时器 进入时重新开启定时器
document.addEventListener("visibilitychange", function () {
if (!document.hidden) {
//处于当前页面
rotate();
timer = setInterval(() => {
rotate();
}, 1000);
console.log('active');
} else {
clearInterval(timer);
}
});