让前端飞前端大全前端开发

js全屏的实现

2018-12-25  本文已影响17人  有梦想的风筝

废话不多说直接上代码吧!
HTML部分:

<!DOCTYPE html>
<html lang="en" id="Content">
<head>
<meta charset="UTF-8">
<title>全屏</title>
</head>
<body>
<ul>
<li>
<a id="BtnFullOpen" href="javascript:void(0);" title="按“F11”进入全屏模式">
<i class="ace-icon fa fa-arrows-alt"></i>全屏查看
</a>
<a id="BtnFullQuite" href="javascript:void(0);" title="按“F11”关闭全屏模式" style="display:none;">
<i class="ace-icon fa fa-arrows-alt"></i>全屏关闭
</a>
</li>
<li>2</li>
<li>3</li>
<li>5</li>
</ul>
</body>
</html>
html部分主要是申明全屏的DOM对象——html标签。
JS部分:

//获取需要的标签,并添加事件
var oBtnFullOpen = document.getElementById('BtnFullOpen');
var oContent = document.getElementById('Content');
oBtnFullOpen.onclick = function() {
fullScreen(oContent);
oBtnFullQuite.setAttribute("style", "display:block");
oBtnFullOpen.setAttribute("style", "display:none");
}
var oBtnFullQuite = document.getElementById('BtnFullQuite');
oBtnFullQuite.onclick = function() {
exitFullScreen(oContent);
oBtnFullQuite.setAttribute("style", "display:none");
oBtnFullOpen.setAttribute("style", "display:block");
};

//全屏及退出全屏方法
function fullScreen(el) {
var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen,
wscript;

if(typeof rfs != "undefined" && rfs) {
    rfs.call(el);
    return;
}

if(typeof window.ActiveXObject != "undefined") {
    wscript = new ActiveXObject("WScript.Shell");
    if(wscript) {
        wscript.SendKeys("{F11}");
    }
}

}

function exitFullScreen(el) {
var el= document,
cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
wscript;

  if (typeof cfs != "undefined" && cfs) {
    cfs.call(el);
    return;
  }

  if (typeof window.ActiveXObject != "undefined") {
      wscript = new ActiveXObject("WScript.Shell");
      if (wscript != null) {
          wscript.SendKeys("{F11}");
      }
}

}
代码没什么难度,这里主要用到的就是js的 Element.requestFullscreen()方法,异步请求使得Element(该元素)全屏显示。

不过Element.requestFullscreen()不能保证该元素被设置为全屏模式,如果允许该元素进入全屏模式,document将接受到fullscreenchange event事件;如果不允许,则document将接受fullscreenerror event事件。

所以在调用Element.requestFullScreen()前,可建立 fullscreenchange和fullscreenerror 的事件处理,将方便调试是否成功请求全屏模式。

最后就是要注意浏览器的兼容性问题:

cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
wscript;

上一篇下一篇

猜你喜欢

热点阅读