zoukankan      html  css  js  c++  java
  • document.visibilityState 监听浏览器

    document.hidden:表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的 sublime 遮住了浏览器)。

    document.visibilityState:表示下面 4 个可能状态的值

    hidden:页面在后台标签页中或者浏览器最小化

    visible:页面在前台标签页中

    prerender:页面在屏幕外执行预渲染处理 document.hidden 的值为 true

    unloaded:页面正在从内存中卸载

    Visibilitychange事件:当文档从可见变为不可见或者从不可见变为可见时,会触发该事件。

    这样,我们可以监听 Visibilitychange 事件,当该事件触发时,获取 document.hidden 的值,根据该值进行页面一些事件的处理。

    document.addEventListener('visibilitychange', function() {
       var isHidden = document.hidden;
       if (isHidden) {
         document.title = '当焦点不在当前窗口时的网页标题';
       } else {
         document.title = '再变回来或者做点其他的';
       }
     });
     
    var show=function(){
     //显示数据
    };
    var
    timer = null; var loopHandle = function () {
      //判断浏览器在当前前台显示
    if (document.visibilityState === 'visible') {
        //调用方法 show();
        //间隔函数轮询显示数据 setInterval(function () { show(); },
    5000); console.log('轮询开始'); } else {
        //终止间隔函数   clearTimeout(timer);  timer
    = null;   console.log('轮询停止'); } };
    //addEventListener() 方法用于向指定元素添加事件句柄。
    //visibilitychange事件判断页面可见性

      //浏览器标签页被隐藏或显示的时候会触发visibilitychange事件
     // 使用 removeEventListener() 方法来移除 addEventListener() 方法添加的事件句柄。

    document.addEventListener('visibilitychange', function (e) {
         loopHandle();
    });
    loopHandle();

    //添加点击事件
    document.getElementById("myBtn").addEventListener("click", function(){
        document.getElementById("demo").innerHTML = "Hello World";
    });
    visibilitychange事件的一些应用场景:
    1.网站有图片轮播效果,只有在用户观看轮播的时候,才会自动展示下一张幻灯片。
    2.显示信息仪表盘的应用程序不希望在页面不可见时轮询服务器进行更新。
    3.页面想要检测是否正在渲染,以便可以准确的计算网页浏览量(埋点使用场景)。
    4.当设备进入待机模式时,网站想要关闭设备声音(用户按下电源键关闭屏幕)
  • 相关阅读:
    【CSS3】纯CSS3制作页面切换效果
    【CSS3】分类豆腐块菜单浮动效果
    【CSS3】使用CSS3制作全屏切换效果
    【JQ】toggle / slideToggle / fadeToggle 的区别
    【CSS3 + 原生JS】上升的方块动态背景
    【CSS3 + 原生JS】移动的标签
    【原生JS】简单取随机数
    【原生JS】键盘事件
    【CSS3】loading动画
    【原生JS】层叠轮播图
  • 原文地址:https://www.cnblogs.com/LiChen19951127/p/11319814.html
Copyright © 2011-2022 走看看