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 相关文章推荐
13个绚丽的Jquery 界面设计网站推荐
Sep 28 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
jQuery中DOM操作实例分析
Jan 23 Javascript
jquery实现右键菜单插件
Mar 29 Javascript
jquery中添加属性和删除属性
Jun 03 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
Vuejs实现购物车功能
Nov 05 Javascript
基于vue和react的spa进行按需加载的实现方法
Sep 29 Javascript
jquery层次选择器的介绍
Jan 18 jQuery
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 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
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
法律工作求职自荐信
2013/10/31 职场文书
医生进修自我鉴定
2014/01/19 职场文书
公司授权委托书范本
2014/04/03 职场文书
挂职学习心得体会
2014/09/09 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
学生退学证明
2015/06/23 职场文书
新生儿未入户证明
2015/06/23 职场文书
防震减灾主题班会
2015/08/14 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript