增加了2个与页面显示相关的API,可以暂停加载视
分类:巴黎人-前端

HTML5中与页面展现相关的API

2015/05/15 · HTML5 · HTML5

原稿出处: 涂根华的博客   

在HTML5中,扩大了2个与页面突显相关的API,分别是Page Visibility API与Fullscreen API; 功用分别如下:

Page Visibility API  是指当页面变为最小化状态大概客商将浏览器标签切换来其余标签时会触发。

Fullscreen API 是将页面全部或页面中有些局地区域设为全屏。

Page Visibility API的利用地方如下:

  1. 一个应用程序中享有多幅图片的幻灯片式的连年播发效果,当页面变为不可知状态(最小化状态也许将顾客浏览器标签切换成另外标签时),图片停播,当页面变为可知状态时,图片继续播放。
  2. 在多个实时展现服务器端消息的应用程序中,当页面处于不可知状态(最小化状态只怕将客户浏览器标签切换成别的标签时),结束定时向服务器端恳求数据的管理,当页面变为可知状态,继续实践按期向劳动器端伏乞数据的管理。
  3. 在贰个怀有播放录制效果的应用程序中,当页面处于不可知状态(最小化状态大概将客户浏览器标签切换成任何标签时),暂停播放录像,当页面变为可知状态时,继续播放摄像。

浏览器协理程度:Firefox10+,chrome14+,IE10+;

实现Page Visibility API

在选拔Page Visibility API时,大家首先须要判别当前客户所利用的浏览器以及该浏览器是不是扶助。代码如下判定:

JavaScript

if(typeof document.hidden !== 'undefined') { hidden = 'hidden'; visibilityChange = 'visibilitychange'; }else if(typeof document.mozHidden !== 'undefined') { hidden = 'mozHidden'; visibilityChange = 'mozvisibilitychange'; }else if(typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; }else if(typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; }

1
2
3
4
5
6
7
8
9
10
11
12
13
if(typeof document.hidden !== 'undefined') {
    hidden = 'hidden';
    visibilityChange = 'visibilitychange';
}else if(typeof document.mozHidden !== 'undefined') {
    hidden = 'mozHidden';
    visibilityChange = 'mozvisibilitychange';
}else if(typeof document.msHidden !== 'undefined') {
    hidden = 'msHidden';
    visibilityChange = 'msvisibilitychange';
}else if(typeof document.webkitHidden !== 'undefined') {        
    hidden = 'webkitHidden';
    visibilityChange = 'webkitvisibilitychange';
}

如上,在Page Visibility  API中,能够透过document对象的hidden属性值来决断页面是不是处在可知状态,当页面处于可知状态时属性值为false,当页面处于不可知状态时属性值为true。

在Page Visibility中,能够经过document对象的visibilityState属性值来剖断页面包车型地铁可见状态。该属性值为三个字符串,其意义如下所示:

    visible: 页面内容部分可知,当前页面位于客户正在查看的浏览器标签窗口中,且浏览器窗口未被最小化。

    hidden: 页面内容对客商不可知。当前页面不在客户正在查阅的浏览器标签窗口中,或浏览器窗口已被最小化。

    prerender: 页面内容已被预渲染,可是对客商不可知。

于今大家来看八个demo,页面中有二个video成分与二个”播放”按键,客户单击”播放”按键时 开关文字变为 ’暂停”,同期初始广播video成分的录制,当页面变为最小化状态或客商浏览器标签切换成另外标签时候,录像被搁浅播放,当页面苏醒不奇怪状态或客户将浏览器标签切回页面所在标签时,录制持续播放。

HTML代码如下:

JavaScript

<video id="videoElement" controls width=640 height=360 autoplay> <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora, vorbis"'/> <source src="Wildlife/Wildlife.webm" type='video/webm' > <source src="Wildlife/Wildlife.mp4" type='video/mp4'> </video> <button id="btnPlay" onclick="PlayOrPause()">播放</button> <div style="height:1500px;"></div>

1
2
3
4
5
6
7
<video id="videoElement" controls width=640 height=360 autoplay>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora, vorbis"'/>
    <source src="Wildlife/Wildlife.webm" type='video/webm' >
    <source src="Wildlife/Wildlife.mp4" type='video/mp4'>
</video>
<button id="btnPlay" onclick="PlayOrPause()">播放</button>
<div style="height:1500px;"></div>

JS代码如下:

JavaScript

var hidden, visibilityChange, videoElement; if(typeof document.hidden !== 'undefined') { hidden = 'hidden'; visibilityChange = 'visibilitychange'; }else if(typeof document.mozHidden !== 'undefined') { hidden = 'mozHidden'; visibilityChange = 'mozvisibilitychange'; }else if(typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; }else if(typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; } document.add伊芙ntListener(visibilityChange,handle,false); videoElement = document.getElementById("videoElement"); videoElement.add伊芙ntListener('ended',videoEnded,false); videoElement.addEventListener('play',videoPlay,false); videoElement.add伊芙ntListener('pause',videoPause,false); // 尽管页面变为不可知状态 则暂停录制播放 // 假若页面变为可知状态,则持续摄像播放 function handle() { // 通过visibilityState属性值判定页面包车型客车可知状态 console.log(document.visibilityState); if(document[hidden]) { videoElement.pause(); }else { videoElement.play(); } } // 播放摄像function play() { videoElement.play(); } // 暂停止播放放 function pause() { videoElement.pause(); } function PlayOrPause() { if(videoElement.paused) { videoElement.play(); }else { videoElement.pause(); } } function videoEnded(e) { videoElement.currentTime = 0; this.pause(); } function videoPlay(e) { var btnPlay = document.getElementById("btnPlay"); btnPlay.innerHTML = "暂停"; } function videoPause(e) { var btnPlay = document.getElementById("btnPlay"); btnPlay.innerHTML = "播放"; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var hidden,
visibilityChange,
videoElement;
if(typeof document.hidden !== 'undefined') {
    hidden = 'hidden';
    visibilityChange = 'visibilitychange';
}else if(typeof document.mozHidden !== 'undefined') {
    hidden = 'mozHidden';
    visibilityChange = 'mozvisibilitychange';
}else if(typeof document.msHidden !== 'undefined') {
    hidden = 'msHidden';
    visibilityChange = 'msvisibilitychange';
}else if(typeof document.webkitHidden !== 'undefined') {
    hidden = 'webkitHidden';
    visibilityChange = 'webkitvisibilitychange';
}
document.addEventListener(visibilityChange,handle,false);
videoElement = document.getElementById("videoElement");
videoElement.addEventListener('ended',videoEnded,false);
videoElement.addEventListener('play',videoPlay,false);
videoElement.addEventListener('pause',videoPause,false);
// 如果页面变为不可见状态 则暂停视频播放
// 如果页面变为可见状态,则继续视频播放
function handle() {
    // 通过visibilityState属性值判断页面的可见状态
    console.log(document.visibilityState);
    if(document[hidden]) {
        videoElement.pause();    
    }else {
        videoElement.play();
    }
}
// 播放视频
function play() {
    videoElement.play();
}
// 暂停播放
function pause() {
    videoElement.pause();
}
function PlayOrPause() {
    if(videoElement.paused) {
        videoElement.play();
    }else {
        videoElement.pause();
    }
}
function videoEnded(e) {
    videoElement.currentTime = 0;
    this.pause();
}
function videoPlay(e) {
    var btnPlay = document.getElementById("btnPlay");
    btnPlay.innerHTML = "暂停";
}
function videoPause(e) {
    var btnPlay = document.getElementById("btnPlay");
    btnPlay.innerHTML = "播放";
}

实现Fullscreen API

在HTML第55中学,新扩张了三个Fullscreen API,其成效是将页面全体或页面中有些局地区域设为全屏突显状态。

浏览器辅助程度:Firefox10+,chrome16+,Safari5.1+

在Fullscreen API中,能够透过DOM对象的根节点目的或某些成分的requestFullscreen属性值和实践相呼应的办法来推断浏览器是不是扶助Fullscreen API。代码如下:

JavaScript

var docElm = document.documentElement; if(docElm.requestFullscreen) { docElm.requestFullscreen(); }else if(docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); }else if(docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); }

1
2
3
4
5
6
7
8
var docElm = document.documentElement;
if(docElm.requestFullscreen) {
        docElm.requestFullscreen();
}else if(docElm.mozRequestFullScreen) {
        docElm.mozRequestFullScreen();
}else if(docElm.webkitRequestFullScreen) {
        docElm.webkitRequestFullScreen();
}

在Fullscreen API中,也能够经过DOM对象或有些成分的exitFullscreen与CanvelFullScreen属性和艺术将方今页面或某些成分设定为非全屏展现状态。

一般来讲代码:

JavaScript

if(document.exitFullscreen) { document.exitFullscreen(); }else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); }else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); }

1
2
3
4
5
6
7
if(document.exitFullscreen) {
    document.exitFullscreen();
}else if(document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
}else if(document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
}

在Fullscreen API中,能够经过监听DOM对象或某些成分的fullscreenchange事件(当页面或因素从非全屏突显状态形成全屏展现状态,或从全屏显示状态变为非全屏呈现状态时触发)。代码如下:

JavaScript

document.addEventListener('fullscreenchange',function(){},false); document.addEventListener('mozfullscreenchange',function(){},false); document.addEventListener('webkitfullscreenchange',function(){},false);

1
2
3
document.addEventListener('fullscreenchange',function(){},false);
document.addEventListener('mozfullscreenchange',function(){},false);
document.addEventListener('webkitfullscreenchange',function(){},false);

在css样式代码中,大家能够使用伪类采用器来单独钦定处于全屏呈现状态的页面或因素样式:

JavaScript

html:-moz-full-screen { background:red; } html:-webkit-full-screen { background:red; } html:fullscreen { background:red; }

1
2
3
4
5
6
7
8
9
html:-moz-full-screen {
    background:red;
}
html:-webkit-full-screen {
    background:red;
}
html:fullscreen {
    background:red;
}

末尾我们来看二个demo,在页面中有叁个开关,点击后,页面会产生全屏状态,再点击后,页面会退出全屏;

HTML代码如下:

JavaScript

<input type="button" id="btnFullScreen" value="页面全屏展现" onclick="toggleFullScreen();"/> <div style="width:百分之百;" id="fullscreentState">非全屏展现</div>

1
2
<input type="button" id="btnFullScreen" value="页面全屏显示" onclick="toggleFullScreen();"/>
<div style="width:100%;" id="fullscreentState">非全屏显示</div>

Javascript如下:

JavaScript

var docElm = document.documentElement; var fullscreentState = document.getElementById("fullscreentState"); var btnFullScreen = document.getElementById("btnFullScreen"); fullscreentState.style.height = docElm.clientHeight + 'px'; document.addEventListener('fullscreenchange',function(){ fullscreentState.innerHTML = (document.fullscreen) ? "全屏显示" : "非全屏展现"; },false); document.addEventListener('mozfullscreenchange',function(){ fullscreentState.innerHTML = (document.mozFullscreen) ? "全屏呈现" : "非全屏展现"; },false); document.addEventListener('webkitfullscreenchange',function(){ fullscreentState.innerHTML = (document.webkitFullscreen) ? "全屏展现" : "非全屏显示"; },false); function toggleFullScreen() { if(btnFullScreen.value == '页面全屏呈现') { btnFullScreen.value = '页面非全屏展现'; if(docElm.requestFullscreen) { docElm.requestFullscreen(); }else if(docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); }else if(docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); } }else { if(document.exitFullscreen) { document.exitFullscreen(); }else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); }else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } btnFullScreen.value = "页面全屏显示"; } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var docElm = document.documentElement;
var fullscreentState = document.getElementById("fullscreentState");
var btnFullScreen = document.getElementById("btnFullScreen");
fullscreentState.style.height = docElm.clientHeight + 'px';
document.addEventListener('fullscreenchange',function(){
    fullscreentState.innerHTML = (document.fullscreen) ? "全屏显示" : "非全屏显示";
},false);
document.addEventListener('mozfullscreenchange',function(){
    fullscreentState.innerHTML = (document.mozFullscreen) ? "全屏显示" : "非全屏显示";
},false);
document.addEventListener('webkitfullscreenchange',function(){
    fullscreentState.innerHTML = (document.webkitFullscreen) ? "全屏显示" : "非全屏显示";
},false);
function toggleFullScreen() {
    if(btnFullScreen.value == '页面全屏显示') {
        btnFullScreen.value = '页面非全屏显示';
        if(docElm.requestFullscreen) {
            docElm.requestFullscreen();
        }else if(docElm.mozRequestFullScreen) {
            docElm.mozRequestFullScreen();
        }else if(docElm.webkitRequestFullScreen) {
            docElm.webkitRequestFullScreen();
        }
    }else {
        if(document.exitFullscreen) {
            document.exitFullscreen();
        }else if(document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        }else if(document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
        btnFullScreen.value = "页面全屏显示";
    }
}

赞 收藏 评论

图片 1

HTML5全屏(Fullscreen)API详细介绍,html5fullscreen

那篇文章首要介绍了HTML5全屏(Fullscreen)API详细介绍,本文给出了运行全屏形式和剥离全屏情势代码示例,同一时候批注了Fullscreen 属性与事件,须要的对象能够参照下

在一发真实的web应用程序中,JavaScript也变得愈加给力.

FullScreen API 是四个新的JavaScript API,轻松而又庞大. FullScreen 让我们得以因此编制程序的不二法门来向客户央浼全屏突显,假若交互实现,随时能够退出全屏状态.

在线演示德姆o:  Fullscreen API Example

(在此德姆o中,能够Launch ,Hide ,以及Dump突显相关属性,能够通过chrome的调整台查看日志音讯.)

运维全屏形式

全屏API requestFullscreen方法在部分老的浏览器里面依然选取带前缀形式的办法名,因而或然须要张开检查评定推断:
(带前缀,意思正是各样浏览器内核不通用.)

代码如下:
// 找到协助的方法, 使用需求全屏的 element 调用
function launchFullScreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}

// 在支持全屏的浏览器中运维全屏
// 整个页面
launchFullScreen(document.documentElement);
// 有些成分
launchFullScreen(document.getElementById("videoElement"));

将急需全屏展现的DOM成分作为参数,调用此方式就能够让window步入全屏状态,一时候大概供给顾客同意(浏览器自身和客商交互),假使客商拒绝,则或许现身种种不完全的全屏.

如果客户同意步向全屏,那么工具栏以及其余浏览器组件会遮蔽起来,使document框架的增长幅度和中度横跨全数显示屏.

剥离全屏方式

应用 exitFullscreen 方法能够使浏览器退出全屏,重临原先的布局. 该措施在部分老的浏览器上也是支撑前缀方法.

代码如下:
// 退出 fullscreen
function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozExitFullScreen) {
document.mozExitFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}

// 调用退出全屏方法!
exitFullscreen();

请留神: exitFullscreen 只可以通过 document 对象调用 —— 并非接纳普通的 DOM element.

Fullscreen 属性与事件

三个坏音信,到最近截止,全屏事件和措施还是是带前缀的,好音信正是高效主流浏览器就能够都援助。

1.document.fullscreenElement:  当前居于全屏状态的成分 element.
2.document.fullscreenEnabled:  标识 fullscreen 当前是否可用.

当步入/退出 全屏形式时,会触发 fullscreenchange 事件:

代码如下:
var fullscreenElement =
document.fullscreenEnabled
|| document.mozFullscreenElement
|| document.webkitFullscreenElement;
var fullscreenEnabled =
document.fullscreenEnabled
|| document.mozFullscreenEnabled
|| document.webkitFullscreenEnabled;

在初叶化全屏方法时,能够探测需求监听哪八个事件.

Fullscreen CSS

浏览器提供了一些实用的 fullscreen CSS 调节准绳:

代码如下:
/* html */
:-webkit-full-screen {
/* properties */
}
:-moz-fullscreen {
/* properties */
}

:fullscreen {
/* properties */
}

/* deeper elements */
:-webkit-full-screen video {
width: 100%;
height: 100%;
}

/* styling the backdrop */
::backdrop {
/* properties */
}

在有些情形下,Web基特殊要求要部分特殊管理,所以在管理多媒体时,你也许供给地点的代码。

自身感到 Fullscreen API 一流轻松,一流有用. 小编第叁回看到那几个 API 是在八个名称叫MDN's BananaBread demo 的全客商端第3个人称CAG游戏, 那真是四个施用全屏形式的绝佳案例。

全屏API提供了进去和剥离全屏形式的方法,并提供对应的风云来监测全屏状态的改观,所以外地点都连贯起来了.

请牢记这么些很好的API吧 —— 在今后的某部时刻,它一定会派上用场!

这篇小说首要介绍了HTML5全屏(Fullscreen)API详细介绍,本文给出了开发银行全屏形式和退出全屏形式代码...

HTML5提供了一部分极其强劲的JavaScript和HTML API,来扶助开采者构建美好的桌面和活动应用程序。本文将介绍5个流行的API,希望对您的开销职业具有帮忙。

一、video的js知识点:

HTML5落实页面切换激活的PageVisibility API使用初探,pagevisibilityapi

HTMl5 推出了贰个很“极度”的 API Page Visibility ,之所以说它特别,是因为这些 API 关切的是七个相当少人瞩指标成效 —— 浏览器标签( tab ) 是还是不是被激活。这里不可不解释一下,那些“激活”,指的是以此标签是不是正被客户浏览,可能说是不是为当下标签。

那便是说,那几个 API 毕竟多少什么用场呢?常常,相当多守旧的页面在客户并未有激活它的时候,它还大概会持续做事,举个例子,当客户正在浏览信息门户,而他事先张开的 NBA球赛页面会继续刷新获取最新结果,录像网址会继续据有带宽加载财富,于是,如果那类不供给的做事太多了,就能够导致众多的能源浪费。因而,那货非常实用:

Web 程序每隔一段时间会自动更新页面消息,确定保证客商获得到当下的新闻,然而,当客户正在浏览别的页面时,可以调节它搁浅更新。
录像网址在广播在线录制时会不断加载录制,直到录像加载实现,不过,当顾客正在浏览其余页面时,可以暂停加载摄像能源,节省带宽。
网址首页上有个大幻灯自动播放,当客商浏览其余页面了,就足以暂停止播放放。
于是,通过 Page Visibility ,大家得以致少达到以下一种或二种的益处:

1.节省服务器能源,Ajax 轮询那类服务器能源占用通常会被忽略,关闭这种央浼能够节省财富。
2.节省里部存款和储蓄器消耗。
3.节省带宽消耗。

故而,使用 Page Visibility 无论是对于顾客照旧服务器都有低价。

接下去正式介绍一下这么些 API 。Page Visibility 会在浏览器的 document 对象上加多多个属性 hidden 和 visibilityState 。如若当前的竹签被激活了,那么 document.hidden 的值为 false ,不然为 true 。visibilityState 则有4个恐怕值:

hidden:当浏览器最小化、切换标签、计算机锁屏时 visibilityState 值是 hidden
visible:当浏览器最顶尖上下文(context)的 document 至少突显在叁个显示屏中间时,再次来到visible;当浏览器窗口未有最小化,可是浏览器被其余应用遮挡时,那时也为 visible
prerender:当文书档案被加载到显示器画面以外恐怕不可知时重临prerender,这么些是非须要属性,浏览器可选择性的支撑。
unloaded:当文书档案将在被离开 ( unload ) 时返回unloaded,浏览器也可采取性的支撑那几个性格
另外,document 上会增多 visibilitychange 事件,当 document 的可知性改动时触发该事件。

好了,介绍完属性,放上贰个 德姆o (张开后切换标签就可以测量试验)。

这一个 德姆o 的成效是监听标签的可知性是还是不是变动 ,并且在标签可知性爆发变动时发出提醒。

值得注意的是,在现阶段,浏览器对于 Page Visibility 的补助依然通过个人属性援助,由此在检查评定或选择 Page Visibility 提供的习性时要求加上浏览器私有前缀,举个例子在 Chrome 中检验方面的visibilityState 属性时,就必要检查评定 document.webkitVisibilityState 并非document.visibilityState 。所以,德姆o 中会首先检测浏览器类型,然后才使用 Page Visibility 的 API 。首要代码如下:

JavaScript Code复制内容到剪贴板

  1. function browerKernel(){   
  2.     
  3.     var result;   
  4.     
  5.     ['webkit', 'moz', 'o', 'ms'].forEach(function(prefix){   
  6.     
  7.         if( typeof document[ prefix + 'Hidden' ] != 'undefined' ){   
  8.             result = prefix;   
  9.         }   
  10.     });   
  11.     
  12.     return result;   
  13.     
  14. }   
  15.     
  16. function init(){   
  17.     
  18.     prefix = browerKernel();   
  19.     
  20.     var showTip = document.getElementById('showTip');   
  21.     
  22.     document.addEventListener( prefix  + 'visibilitychange', function onVisibilityChange(e){   
  23.     
  24.         var tip = null;   
  25.                 
  26.         if( document[ prefix + 'VisibilityState' ] == 'hidden' ) tip = '<p>离开页面</p>';   
  27.         else if( document[ prefix + 'VisibilityState' ]  == 'visible' ) tip = '<p>走入页面</p>';   
  28.     
  29.         showTip.innerHTML = showTip.innerHTML + tip;   
  30.     });   
  31. }   
  32.     
  33. window.onload = init();   
  34.   

再再来看八个具体的事例,代码如下:

JavaScript Code复制内容到剪贴板

  1. <!DOCTYPE HTML>       
  2. <html>       
  3. <head>       
  4.      <script type="text/javascript">       
  5.           timer = 0;       
  6.           function onLoad(){       
  7.                document.addEventListener("visibilitychange",stateChanged);       
  8.                document.addEventListener("webkitvisibilitychange", stateChanged);       
  9.                document.addEventListener("msvisibilitychange", stateChanged);       
  10.           }       
  11.           function stateChanged(){       
  12.                console.log(document.webkitVisibilityState);       
  13.                if(document.hidden || document.webkitHidden || document.msHidden){       
  14.                     //new tab or window minimized     
  15.                     timer = new Date().getTime();       
  16.                }       
  17.                else {       
  18.                     alert('You were away for ' + (new Date().getTime()-timer)/1000+ ' seconds.')       
  19.                }       
  20.           }       
  21.      </script>       
  22. </head>       
  23. <body onLoad="onLoad()">       
  24. </body>       
  25. </html>    

在上头的代码中,同样,在CHROME运营下,在LOAD事件中,监听了相关的 webkitvisibilitychange事件(这些在CHROME下),假诺是IE 10,则是 msvisibilitychange事件,然后在回调函数中,起首了总括客商在页面停留的年月, 所以当您展开别的TAB页可能最小化后,再切换回原本这些页,则会JAVASC普拉多IPT 弹出呈现:你相差了页面多久 。
要小心的是,在CHROME中,属性命名称为webkitHidden,事件为 webkitvisibilitychange事件,而在IE 第10中学,属性为msHidden 和 msVisibilityState.

API使用初探,pagevisibilityapi HTMl5 推出了多少个很非常的 API Page Visibility ,之所以说它特别,是因为这么些...

 

controls(调整器)、autoplay(自动播放)、loop(循环)==video暗中同意的;

  1.  全屏API(Fullscreen API)

自定义播放器中部分JS中提供的措施和属性的笔录:

 

1、play()调整录制的播报

  该API允许开辟者以编制程序方式将Web应用程序全屏运营,使Web应用程序更像本地应用程序。

2、pause()调控录像的终止

 

3、currentTime调整录制的近些日子时刻

 

4、muted调控摄疑似否静音(赋值true or false)

//

5、volume调节音量的轻重缓急(赋值0-1)

 找到符合浏览器的全屏方法

6、duration录制的总时间

 

7、ontimeupdate事件(当前播送地方变动时举行,使用时要绑定add伊夫ntListener)

function

8、requestFullscreen全屏

 

二、全屏API介绍

launchFullScreen(element) {

浏览器全屏API简史

 

1、第一个落到实处浏览器原生全屏API的是在Safari 5.0(和iOS)中增长的webkitEnterFullScreen()函数,但是它不得不在Safar的<video>标签的controls中。

  if(element.requestFullScreen)

2、在Safari 5.第11中学,苹果更新了那个API使它更就像是于Mozilla的全屏API草案(实际上那要比苹果完结的更早),以后,全部的DOM成分都得以调用webkitRequestFullScreen()函数使HTML页面步入到全屏格局。

 {

3、Firefox和Chome发表它们将会增加原生的全屏API支持,并且这几个天性已经在Chome 15+以及Firefox10+中贯彻,Mozilla团队曾经透露了有个别。

 

4、在二〇一二年11月31日,W3C发表了一份全屏API草案(由Opera团队的一名成员编写),它跟Mozilla的草案有四个第一的差异点:

    element.requestFullScreen();

  1. Mozilla/Webkit使用大写字母’S'(FullScreen),但W3C则不是(Fullscreen)
  2. Mozilla/Webkit使用cancelFullScreen,W3C使用exitFullscreen

 

5、更新 (11/15/2011):来自IEBlog的Ted Johnson说IE10将不会支持全屏API (12/05/二〇一一: 小编对特德的第一封email驾驭错了)IE10的支付组织还尚无决定是不是要落到实处全屏API。但是,他建议:Win8的 Metro风格的Internet Explorer始终是全屏状态,正如从前那么,按F11键就可以步向全屏格局。

  }

浏览器全屏API

else

要跻身全屏方式,能够调用供给步向全屏成分的requestFullScreen(只怕W3C的 requestFullscreen)方法。。要剥离全屏,则调用document对象的cancelFullScreen(也许W3C的exitFullscreen)方法。

 

代码:

if(element.mozRequestFullScreen)

全屏

 {

var docElm = document.documentElement;
//W3C
if(docElm.requestFullscreen){

 

docElm.requestFullscreen();

    element.mozRequestFullScreen();

}
//FireFox
else if (docElm.mozRequestFullScreen) {

 

docElm.mozRequestFullScreen();

  }

}
//Chrome等
else if (docElm.webkitRequestFullScreen) {

else

docElm.webkitRequestFullScreen();

 

}
//IE11
else if (elem.msRequestFullscreen) {

if(element.webkitRequestFullScreen)

elem.msRequestFullscreen();

 {

}

 

剥离全屏

    element.webkitRequestFullScreen();

if (document.exitFullscreen) {

 

document.exitFullscreen();

  }

}

 

else if (document.mozCancelFullScreen) {

}

document.mozCancelFullScreen();

 

}

  

else if (document.webkitCancelFullScreen) {

 

document.webkitCancelFullScreen();

//

}

 运转全屏方式

else if (document.msExitFullscreen) {

 

document.msExitFullscreen();

launchFullScreen(document.documentElement);

}

//

监听是还是不是全屏

 the whole page

document.addEventListener("fullscreenchange", function(){

 

fullscreenState.innerHTML = (document.fullscreen)? "" : "not ";}, false);

launchFullScreen(document.getElementById("videoElement"));

document.addEventListener("mozfullscreenchange", function () {

//

fullscreenState.innerHTML = (document.mozFullScreen)? "" : "not ";}, false);

 any individual element

document.addEventListener("webkitfullscreenchange", function () {

  教程 / 演示

fullscreenState.innerHTML = (document.webkitIsFullScreen)? "" : "not ";}, false);

 

document.addEventListener("msfullscreenchange", function () {

  2.  页面可知性API(Page Visibility API)

fullscreenState.innerHTML = (document.msFullscreenElement)? "" : "not ";}, false);

 

全屏是的样式设置

  该API能够用来检查评定页面前境遇于顾客的可知性,即重返顾客日前浏览的页面或标签的情景变化。

html:-moz-full-screen {
background: red;
}
html:-webkit-full-screen {
background: red;
}
html:fullscreen {
background: red;
}

 

https://www.cnblogs.com/duanlianjiang/p/5557015.html

 

//

 设置掩饰属性和可知改动事件的名称,属性须求加浏览器前缀

 

//

 since some browsers only offer vendor-prefixed support

 

本文由巴黎人手机版发布于巴黎人-前端,转载请注明出处:增加了2个与页面显示相关的API,可以暂停加载视

上一篇:没有了 下一篇:原文出处,为什么还需要另一个协议
猜你喜欢
热门排行
精彩图文