【澳门新萄京8522】HTML5中与页面显示相关的API

【澳门新萄京8522】HTML5中与页面显示相关的API

HTML第55中学与页面显示相关的API

2015/05/15 · HTML5 ·
HTML5

原来的小说出处:
涂根华的博客   

在HTML5中,扩充了1个与页面呈现相关的API,分别是Page Visibility
API与Fullscreen API; 效率分别如下:

Page Visibility API 
是指当页面变为最小化状态只怕用户将浏览器标签切换来别的标签时会触发。

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

Page Visibility API的施用场地如下:

  1. 1个应用程序中有所多幅图片的幻灯片式的一连播发效果,当页面变为不可知状态(最小化状态恐怕将用户浏览器标签切换成任何标签时),图片停播,当页面变为可知状态时,图片继续播放。
  2. 在3个实时展现服务器端消息的应用程序中,当页面处于不可知状态(最小化状态大概将用户浏览器标签切换成其余标签时),甘休定期向劳动器端请求数据的处理,当页面变为可知状态,继续执行定期向劳动器端请求数据的处理。
  3. 在3个兼有播放录像效果的应用程序中,当页面处于不可知状态(最小化状态可能将用户浏览器标签切换成其它标签时),暂停止播放放录制,当页面变为可知状态时,继续播放录制。

浏览器支持程度:Firefox10+,chrome1四+,IE拾+;

实现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: 页面内容已被预渲染,不过对用户不可知。

近来我们来看3个demo,页面中有一个video成分与3个”播放”按钮,用户单击”播放”按钮时
按钮文字变为
’暂停”,同时启幕播放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.add伊夫ntListener(‘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;
}

终极我们来看1个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.add伊夫ntListener(‘fullscreenchange’,function(){
fullscreentState.innerHTML = (document.fullscreen) ? “全屏展现” :
“非全屏呈现”; },false);
document.add伊夫ntListener(‘mozfullscreenchange’,function(){
fullscreentState.innerHTML = (document.mozFullscreen) ? “全屏呈现” :
“非全屏显示”; },false);
document.add伊夫ntListener(‘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 = "页面全屏显示";
    }
}

赞 收藏
评论

澳门新萄京8522 1

HTML伍全屏(Fullscreen)API详细介绍,html伍fullscreen

这篇小说重要介绍了HTML5全屏(Fullscreen)API详细介绍,本文给出了开发银行全屏情势和退出全屏情势代码示例,同时讲解了Fullscreen
属性与事件,须求的意中人能够参照下

在更为真实的web应用程序中,JavaScript也变得更为给力.

FullScreen API 是3个新的JavaScript API,简单而又强大. FullScreen
让大家得以由此编制程序的法子来向用户请求全屏展现,若是交互完结,随时能够脱离全屏状态.

在线演示德姆o:  Fullscreen API Example

(在此德姆o中,能够Launch ,Hide
,以及Dump突显相关属性,能够由此chrome的控制台查看日志音信.)

起步全屏方式

全屏API
requestFullscreen方法在1部分老的浏览器里面依旧选用带前缀情势的措施名,因而大概供给展开检查评定判断:
(带前缀,意思正是各类浏览器内核不通用.)

代码如下:
// 找到协助的不二法门, 使用供给全屏的 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 属性与事件

八个坏消息,到近期截至,全屏事件和方式照旧是带前缀的,好音信正是便捷主流浏览器就会都支持。

一.document.fullscreenElement:  当前高居全屏状态的要素 element.
2.document.fullscreenEnabled:  标记 fullscreen 当前是否可用.

当进入/退出 全屏情势时,会触发 fullscreenchange 事件:

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

在开端化全屏方法时,能够探测须要监听哪叁个事件.

澳门新萄京8522,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 */
}

在某个情形下,WebKit殊要求要壹些优秀处理,所以在拍卖多媒体时,你或者须要地点的代码。

自身以为 Fullscreen API 超级简单,超级有用. 笔者第一遍见到那个 API 是在贰个名为MDN’s BananaBread demo 的全客户端第2人称射击游戏,
那真是1个行使全屏格局的绝佳案例。

全屏API提供了进来和剥离全屏格局的方法,并提供对应的事件来监测全屏状态的更动,所以各方面都连贯起来了.

请记住那个很好的API吧 —— 在以往的某部时刻,它自然会派上用场!

那篇小说首要介绍了HTML伍全屏(Fullscreen)API详细介绍,本文给出了开行全屏形式和退出全屏格局代码…

function(stream)

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

 {

document.addEventListener(“msfullscreenchange”, function () {

 

一、video的js知识点:

 添加二个题名改变的监听器

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

  }

}

 

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

  //

一、play()控制录制的播音

if

docElm.requestFullscreen();

//

controls(控制器)、autoplay(自动播放)、loop(循环)==video暗中认可的;

  visibilityChange

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

 {

else if (document.webkitCancelFullScreen) {

//

8、requestFullscreen全屏

 

else if (document.msExitFullscreen) {

 level: “,

二、全屏API介绍

 

}

  state

}

 

4、在2011年1月一17日,W3C公布了一份全屏API草案(由Opera团队的一名成员编写),它跟Mozilla的草案有八个首要的不相同点:

  那是二个针对性移动设备应用程序的API,首要用于检查测试设备电池消息。

伍、volume控制音量的轻重(赋值0-一)

 

document.exitFullscreen();

  }

浏览器全屏API

  if(navigator.getUserMedia)

docElm.webkitRequestFullScreen();

(typeof

脱离全屏

//

}

 设置video监听器

docElm.mozRequestFullScreen();

 

if (document.exitFullscreen) {

 = “visibilitychange”;

代码:

 

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

  教程 / 演示

}

 

document.addEventListener(“mozfullscreenchange”, function () {

 

三、currentTime控制录像的当前些天子

 起头或结束状态处理

document.mozCancelFullScreen();

 

elem.msRequestFullscreen();

 

else if (document.mozCancelFullScreen) {

 = “mozvisibilitychange”;

监听是不是全屏

 

全屏

 { //

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

 

document.addEventListener(“webkitfullscreenchange”, function () {

 

document.addEventListener(“fullscreenchange”, function(){

 

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

 

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

 

要跻身全屏方式,能够调用需求进入全屏成分的requestFullScreen(也许W3C的
requestFullscreen)方法。。要退出全屏,则调用document对象的cancelFullScreen(或然W3C的exitFullscreen)方法。

 = { “video”:

二、在Safari
5.第11中学,苹果更新了那一个API使它更就如于Mozilla的全屏API草案(实际上那要比苹果落成的更早),今后,全部的DOM成分都得以调用webkitRequestFullScreen()函数使HTML页面进入到全屏方式。

 

自定义播放器中一些JS中提供的不二等秘书诀和总体性的记录:

 battery.charging);

document.webkitCancelFullScreen();

 

二、pause()控制录制的平息

 

陆、duration摄像的总时间

  visibilityChange

三、Firefox和Chome公布它们将会拉长原生的全屏API协理,而且以此天性已经在Chome
15+以及Firefox拾+中贯彻,Mozilla共青团和少先队已经发布了某些。

  hidden

document.msExitFullscreen();

  hidden

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

 

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

 

浏览器全屏API简史

 

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

 

5、更新 (11/15/2011):来自IEBlog的Ted
Johnson说IE10将不会支持全屏API (12/05/201一:
小编对Ted的第叁封email掌握错了)IE十的支付组织还尚无控制是或不是要促成全屏API。可是,他提出:Win八的
Metro风格的Internet
Explorer始终是全屏状态,正如从前那么,按F1一键即可进入全屏形式。

 = canvas.getContext(“2d”),

全屏是的样式设置

href=”

柒、ontimeupdate事件(当前播放位置变动时进行,使用时要绑定addEventListener)

else

四、muted控制录像是不是静音(赋值true or false)

//

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

 

else

    };

else

 

    },

if(navigator.webkitGetUserMedia)

  if(element.requestFullScreen)

 

 

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

 capture error: “,

 

 

//

    element.mozRequestFullScreen();

 the whole page

 = “msHidden”;

 

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

 = “webkitvisibilitychange”;

 = “webkitVisibilityState”;

  

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图