当前位置主页 > 资料库 > 前端教程 > 如何实现HTML5全屏模式Full Screen API

如何实现HTML5全屏模式Full Screen API

11-17

查看演示

HTML5引入了一些新的元素和一些神奇的API。本教程要学习的是其中的全屏模式FullScreen API。

为什么称它为全屏模式Full-Screen API?

在这个API出现之前,我们只能简单的使用F11键使浏览器进入全屏模式。我们不能够选择我们想要的页面元素进入全屏模式,通过Full-Screen API我们能够打破这种限制。

使用Full-Screen API能使一个页面中指定的元素进入全屏模式。它对视频、图片、游戏或基于HTML/CSS的幻灯片、轮询图特别有用。当用户静茹全屏模式,就会有一条提示信息告知他们使用ESC键可以随时退出全屏模式。

全屏模式的属性和事件:

Full-Screen API公开了文档对象的两个属性:

  • fullScreenEnabled
  • fullScreenElement

如果当前全屏模式可用,这些指定的对象将被转换为全屏模式。

document.fullscreenEnabled

如果当前文档允许全屏模式,这个属性值返回true。它也被用来检测浏览器是否支持全屏模式。

if (document.fullscreenEnabled) { 
    // further code goes here
 }                               
                            

注意:在以前的版本中,在˜Screen中有一个波浪线˜S,现在在Firefox它任然起作用。下面是夸浏览器的写法:

if (document.mozFullScreenEnabled || document.fullscreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled ) {
    // further code goes here
}                                
                            

document.fullscreenElement

这个属性将返回当前进入全屏模式的元素,或返回null(未进入全屏模式)。

if (document.fullscreenElement) { 
    // further code goes here
}                                
                            

注意:在fullscreenElementscreen是小写。下面是夸浏览器的写法:

if (document.webkitFullscreenElement ||  document.fullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) {
// Further code goes here
}                                
                            

Full-Screen API公开了两个方法来控制指定元素进入全屏或退出全屏模式。

  • requestFullscreen()
  • exitFullscreen()

element.requestFullscreen()

这个方法实现一个指定元素进入全屏模式。例如:

document.getElementById("element id goes here").requestFullscreen();                                
                            

注意screen是小写。下面是夸浏览器的写法:

var ele = document.getElementById("element id goes here");
// going full-screen
if (ele.requestFullscreen) {
    ele.requestFullscreen();
}
else if (ele.webkitRequestFullscreen) {
    ele.webkitRequestFullscreen();
}
else if (ele.msRequestFullscreen) {
    ele.msRequestFullscreen();
}
else if (ele.mozRequestFullScreen) {
    ele.mozRequestFullScreen();
}                                
                            

document.exitFullscreen

这个方法用来取消全屏模式。

document.exitFullscreen;                                
                            

注意:以前版本这个方法的名字是cancelFullScreen,现在Firefox仍在使用它。下面是夸浏览器的写法:

if (document.exitFullscreen) {
    document.exitFullscreen();
} 
else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
}
else if (document.msExitFullscreen) {
    document.msExitFullscreen();
}
else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
}                               
                            

全屏模式CSS(Full-Screen CSS)

:fullscreen {
/* properties */
}                                
                            

注意:以前版本使用的名字是:full-screen,现在Firefox和webkit内核浏览器仍在使用它。下面是夸浏览器的写法:

:fullscreen {
/* properties */
}
:-webkit-full-screen {
/* properties */
}
:-ms-fullscreen {
/* properties */
}
:-moz-full-screen {
/* properties */
}
  
::backdrop {
  /* properties */
}
::-ms-backdrop {
  /* properties */
}                                
                            

演示

这里的demo使用了html5全屏模式FullScreen API使一个元素进入全屏模式。查看:全屏模式demo

HTML

<!-- This is out simple HTML Code -->
<div class="mainwrapper">
    <h2>HTML5 FullScreen API Demo</h2>
    <div id="screen" class="fullscreen">  
        <img src="images/logo.jpg">  
        <span class="full-button"></span>  
    </div>
    <p>Click the letter 'F' on top right corner to toggle full-screen view.</p>
</div>                               
                            

CSS

<style>
.mainwrapper {
    width: 38%;
    margin: 0 auto;
}

.mainwrapper h2 {
 text-align:center;
}

.mainwrapper p{
 font-size:12px;
 color:black;
 text-align:center;
 font-family:sans-serif;
 padding-top:15px;
}

.fullscreen {
    position: relative;
}

.fullscreen img {
    max-width: 100%;
    border: 8px solid #69A5F1;
    box-shadow: 5px 5px 45px #69A5F1;
}

.fullscreen .full-button {
    display: inline-block;
    z-index: 105;
    height: 32px;
    width: 32px;
    position: absolute;
    top: 10px;
    right: 15px;
    cursor: pointer;
}

.fullscreen .full-button:after {  
    display: inline-block;  
    width: 100%;  
    height: 100%;  
    font-size: 34px;  
    cursor: pointer;  
    color: #fff; 
    content: "F";  
}  
</style>
                                
                            

JAVASCRIPT

<script>
$(document).ready(function(){
    $('.full-button').on('click', function(){
        var docelem = document.getElementById('screen');
        
        if (docelem.requestFullscreen) {
            docelem.requestFullscreen();
        }else if (docelem.webkitRequestFullscreen) {
            docelem.webkitRequestFullscreen();
        } else if(docelem.mozRequestFullScreen) {
            docelem.mozRequestFullScreen();
        } else if(docelem.msRequestFullscreen) {
            docelem.msRequestFullscreen();
        }
        
    });
});
</script>                                
                            

浏览器支持

如果你想查看有哪些浏览器支持这个API,建议你到这个网站看看:http://caniuse.com/#feat=fullscreen。所有的现代浏览器都支持FullScreen API,下面列出了一些支持FullScreen API的浏览器:

  • Internet Explorer 11+
  • Firefox 10+
  • Chrome 15+
  • Safari 5.1+
  • Opera 12.10+

注意事项

html5全屏模式Full Screen不应该在任何网站上都使用,应该在需要的地方使用它。

全屏显示应限制在某些情况下使用。这将使用户专注于做某件事情,而不会被其它元素干扰。例如:

  • 看视频
  • 游戏
  • 幻灯片

如果你提供这些功能,就要确保你提供的内容具有很高的分辨率(在图像的情况下)否则模糊图像会导致用户体验下降。

本教程就到这里,希望对你有所帮助。

查看演示

Previous:
上一篇:使用Flexboxgrid制作Dribbble网站的图片网格布局
Next:
下一篇:最小化设计-浅谈电子商务网站设计
返回顶部