页面可见性visibilitychange

2018-08-10  本文已影响0人  6f748fe54ad4

1、介绍visibilityState

    HTML5新提供的一个api,作用是记录当前标签页在浏览器中的激活状态。所谓“激活状态”指当前标签是否正在被用户浏览。

2、应用场景

    监控用户行为,当用户的视角不在当前页面时,暂停加载广告,幻灯片、停止加载视频、开始加载小动画等。减少对用户宽带的占用,减少服务器压力,节省用户内存,以及到达更好的播放效果。

3、属性与事件

HTML5中专门为document元素添加了相关属性和事件:

属性:document.visibilityState

事件:document.addEventListener( "visibilitychange" , function(){})

4.注意事项

        在目前,浏览器对 Page Visibility 的支持还是通过私有属性支持,因此在检测或利用 Page Visibility 提供的属性时需要加上浏览器私有前缀,例如在 Chrome 中检测上面的 visibilityState 属性时,就需要检测 document.webkitVisibilityState 而不是 document.visibilityState 。所以,需要首先检测浏览器类型,然后才使用 Page Visibility 的 API 。

5.实现代码

var vibibleState ='';

var visibleChange ='';

if (typeof document.visibilityState !='undefined') {

visibleChange ='visibilitychange';

    vibibleState ='visibilityState';

}else if (typeof document.webkitVisibilityState !='undefined') {

visibleChange ='webkitvisibilitychange';

    vibibleState ='webkitVisibilityState';

}

if (visibleChange) {

document.addEventListener(visibleChange, function() {

if (document[vibibleState] =='visible') {

alert('页面可见');

        }

})

}

6.兼容版本

手机端开发基本分为ios和android端。

ios 7.1及以上都支持。6.1对应iPhone3.基本上不用考虑兼容问题,放心大胆的用。

android 端4.4及以上可以使用。android端低于4.4系统的手机市场量还是有一部分。使用这个属性时,基础功能引用了可能会引发问题。如果是优化功能的话,没有问题。

以下图片是该属性的兼容版本

上一篇下一篇

猜你喜欢

热点阅读