如何实现一个倒计时,切换浏览器 tab之后定时器不暂停,和 segmentfault 的倒计时验证一样?-灵析社区

JayCoder

![](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/72a07a01bbe09ba37da1f1282c983b81.png)

阅读量:19

点赞量:0

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