javascript full screen 全屏显示页面元素的方法


Posted in Javascript onSeptember 27, 2013

一种最简单的方式,就是动态改变你想要全屏显示的部件的style,例如position变成absolute,height和width都设置成窗口大小,并且把背景颜色改成全白(为了遮住页面上其余的元素)。这样网页上就只能看到你要突出的部件了,视觉上就等同于全屏。同时利用javascript监听键盘事件,一旦用户按了ESc退出键,就恢复原来的样子。部分代码如下:

document.onkeydown = function (event) {
        var e = event || window.event || arguments.callee.caller.arguments[0];
        if (e && e.keyCode == 27) { //ESC键            $('.navbar-inner').fadeIn(100);
            var maintable = document.getElementById("holder");
            maintable.style.position = "relative";
            maintable.style.height = "100%";
            maintable.style.width = "100%";
            maintable = document.getElementById("main");
            maintable.style.height = "100%";
            maintable.style.width = "100%";
            maintable.style.left = 0 + "px";
            maintable.style.top = 0 + "px";
            resizePlots();
        }        
    };


fullScreenClick: function () {
$('.navbar-inner').fadeOut(100);
var maintable = document.getElementById("holder");
maintable.style.position = "absolute";
maintable.style.background = "#fff";
//maintable.style.zIndex = 5;
maintable.style.height = $(window).height() + "px";
maintable.style.width = $(window).width() + "px";
maintable.style.left = 0 + "px";
maintable.style.top = 0 + "px";
maintable = document.getElementById("main");
maintable.style.height = "90%";
maintable.style.width = "90%";
maintable.style.left = $(window).width() * 0.05 + "px";
maintable.style.top = $(window).height() * 0.02 + "px";
resizePlots();
},

但是这样做有个缺点,就是还需要手工按一下F11来达到真正的全屏。

下面有一种方法不用自己按F11的:

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body  >
<button id="btn" > full screen </button>
<div id="content" style="height:500px;width:500px;background:#fff">
<h1>欢迎微博互粉!</h1>
<h2>weibo.com/leavingseason</h2>
<p>相信音乐,相信五月天</p>
</div>
</body>
 <script language="JavaScript">  
document.getElementById("btn").onclick=function(){ 
 var elem = document.getElementById("content");  
requestFullScreen(elem); 
}; 
function requestFullScreen(element) {
    var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;
    if (requestMethod) {  
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") {  
        var wscript = new ActiveXObject("WScript.Shell");
        if (wscript !== null) {
            wscript.SendKeys("{F11}");
        }
    }
} 
</script> 
</html>

这个可以支持大部分的浏览器。但是讨厌的IE还是不能支持HTML5的全屏功能,需要模拟按F11这个动作。读者可以在代码中看到。

还可以在代码里面退出全屏界面:

function cancelFullScreen(el) {
            var requestMethod = el.cancelFullScreen||el.webkitCancelFullScreen||el.mozCancelFullScreen||el.exitFullscreen;
            if (requestMethod) { // cancel full screen.
                requestMethod.call(el);
            } else if (typeof window.ActiveXObject !== "undefined") { // Older IE.
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
        }

关于全屏显示,我还是很好奇,那么视频网站是如何做到对IE等浏览器都兼容的全屏功能的。如果有谁知道的话,还请分享一下,感激不尽。

 updated (2013/09/22)

很多时候,想在全屏切换的时候做一些自定义的事情。可以如下绑定事件:

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

它会在每次进入或者退出全屏的时候,触发doit()操作。
Javascript 相关文章推荐
jquery得到font-size属性值实现代码
Sep 30 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
JavaScript获取当前网页标题(title)的方法
Apr 03 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
Vue项目全局配置微信分享思路详解
May 04 Javascript
微信小程序url传参写变量的方法
Aug 09 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
详解如何更好的使用module vuex
Mar 27 Javascript
实现动画效果核心方式的js代码
Sep 27 #Javascript
javascript中call和apply方法浅谈
Sep 27 #Javascript
文本框回车提交与禁止提交示例
Sep 27 #Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 #Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 #Javascript
js克隆对象、数组的常用方法介绍
Sep 26 #Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 #Javascript
You might like
phpize的深入理解
2013/06/03 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Django认证系统实现的web页面实现代码
2019/08/12 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
刑事代理授权委托书
2014/09/17 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
高一军训口号
2015/12/25 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书