代码改变世界

js判断当前页面是否活动页面

  狼人:-)  阅读(842)  评论(0编辑  收藏  举报

在开发中,希望当前页面如果不是活动页面,即用户切换了tab页,或者用户把浏览器缩小隐藏了

这个时候,我们希望页面暂停,比如游戏暂停,视频停止播放等。

那怎么做呢?

1、使用document.hidden来判定是否隐藏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var hidden, state, visibilityChange;
if (typeof document.hidden !== "undefined") {
  hidden = "hidden";
  visibilityChange = "visibilitychange";
  state = "visibilityState";
else if (typeof document.mozHidden !== "undefined") {
  hidden = "mozHidden";
  visibilityChange = "mozvisibilitychange";
  state = "mozVisibilityState";
else if (typeof document.msHidden !== "undefined") {
  hidden = "msHidden";
  visibilityChange = "msvisibilitychange";
  state = "msVisibilityState";
else if (typeof document.webkitHidden !== "undefined") {
  hidden = "webkitHidden";
  visibilityChange = "webkitvisibilitychange";
  state = "webkitVisibilityState";
}
  
// 添加监听器,监听当前是否活动页面
document.addEventListener(visibilityChange, function() {
  document.title = document[state];
}, false);

  

2、使用requestAnimationFrame,如果当前不是活动页面,则requestAnimationFrame不会回调。setInterval会一直走

复制代码
复制代码
setInterval(()=>{
    console.log(111);
    (window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    window.msRequestAnimationFrame)(function(){
        console.log(2);
    });
 
})
复制代码
复制代码

 转自 https://blog.csdn.net/lqyygyss/article/details/90488912

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-04-30 IIS7保存配置文件及导入、导出、备份、还原
点击右上角即可分享
微信分享提示