项目中需要将后台浏览器的窗口全屏,也就是我们点击一个按钮要实现按F11全屏的效果。 在HTML5中,W3C制定了关于全屏的API,就可以实现全屏幕的效果,也可以让页面中的图片,视频等全屏目前只有google chrome 15 +, safri5.1+,firfox10+,IE11支持
全屏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var docElm = document.documentElement;
//W
3
C
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
//FireFox
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
//Chrome等
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
//IE
11
else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
|
退出全屏
1
2
3
4
5
6
7
8
9
10
11
12
|
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
|
事件监听
1
2
3
4
5
6
7
8
9
10
|
document.addEventListener(
"fullscreenchange"
, function () {
fullscreenState.innerHTML = (document.fullscreen)?
""
:
"not "
;}, false);
document.addEventListener(
"mozfullscreenchange"
, function () {
fullscreenState.innerHTML = (document.mozFullScreen)?
""
:
"not "
;}, false);
document.addEventListener(
"webkitfullscreenchange"
, function () {
fullscreenState.innerHTML = (document.webkitIsFullScreen)?
""
:
"not "
;}, false);
document.addEventListener(
"msfullscreenchange"
, function () {
fullscreenState.innerHTML = (document.msFullscreenElement)?
""
:
"not "
;}, false);
|
全屏样式设置
在浏览器全屏的使用我们还可以进行样式设置
1
2
3
4
5
6
7
8
9
10
11
|
html:-moz-full-
screen
{
background
:
red
;
}
html:-webkit-full-
screen
{
background
:
red
;
}
html:fullscreen {
background
:
red
;
}
|
附录
1 一个在线的Demo
http://robnyman.github.io/fullscreen/
2 HTML5全屏API之网络钓鱼
3 jquery封装的全屏插件
http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/
4 更加详细的全屏API介绍
4.1 https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
4.2 https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
5 HTML5全屏API在FireFox/Chrome中的显示差异
http://www.zhangxinxu.com/wordpress/2012/10/html5-full-screen-api-firefox-chrome-difference/