当浏览器最小化窗口或切换到另一个选项卡时就会触发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)