当浏览器最小化窗口或切换到另一个选项卡时就会触发visibilityChange事件,我们可以在事件中用document.hidden(true/false)或者document.visibilityState("visible"/"hidden")判断当前窗口的状态,来决定除定时器后者重新开始定时器
demo:
let count = 0;
let timer = null
timer = setInterval(() => {
console.log(count);
count++
}, 200)
document.addEventListener("visibilitychange", function () {
if (document.hidden === true) {// document.visibilityState == "visible"
// 页面被挂起
clearInterval(timer)
} else {
// 页面由挂起被激活
timer = setInterval(() => {
console.log(count);
count++
}, 200)
}
});
也可以这样:
«"https://juejin.cn/post/6985798073700057118" (https://link.segmentfault.com/?enc=Cq%2FPIm6BbhIwI%2FBbblPVYw%3D%3D.qbEc0z92%2Bs9GB2mc5GfmGLNKyzMM44TK5UlpbilCqizmcR2%2BJDub5kSJm8fHz6%2Fv)»