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 相关文章推荐
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
Aug 04 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
JavaScript实现无穷滚动加载数据
May 06 Javascript
React简单介绍
May 24 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
JavaScript ES6箭头函数使用指南
Dec 30 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
实现动画效果核心方式的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 skymvc 一款轻量、简单的php
2011/06/28 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python os模块简单应用示例
2019/05/23 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python asyncio 协程库的使用
2021/01/21 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
医院门卫岗位职责
2013/12/30 职场文书
公司借条范本
2015/05/25 职场文书
婚庆答谢词大全
2015/09/29 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python