用html5 js实现点击一个按钮达到浏览器全屏效果


Posted in Javascript onMay 28, 2014

项目中需要将后台浏览器的窗口全屏,也就是我们点击一个按钮要实现按F11全屏的效果。 在HTML5中,W3C制定了关于全屏的API,就可以实现全屏幕的效果,也可以让页面中的图片,视频等全屏目前只有google chrome 15 +, safri5.1+,firfox10+,IE11支持

全屏

var docElm = document.documentElement;

//W3C 

if (docElm.requestFullscreen) { 

  docElm.requestFullscreen(); 

}

//FireFox 

else if (docElm.mozRequestFullScreen) { 

  docElm.mozRequestFullScreen(); 

}

//Chrome等 

else if (docElm.webkitRequestFullScreen) { 

  docElm.webkitRequestFullScreen(); 

}

//IE11

else if (elem.msRequestFullscreen) {

 elem.msRequestFullscreen();

}

退出全屏 

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

事件监听

document.addEventListener("fullscreenchange", function () { 
fullscreenState.innerHTML = (document.fullscreen)? "" : "not ";}, false); 

document.addEventListener("mozfullscreenchange", function () { 
fullscreenState.innerHTML = (document.mozFullScreen)? "" : "not ";}, false); 

document.addEventListener("webkitfullscreenchange", function () { 
fullscreenState.innerHTML = (document.webkitIsFullScreen)? "" : "not ";}, false); 
document.addEventListener("msfullscreenchange", function () { 
fullscreenState.innerHTML = (document.msFullscreenElement)? "" : "not ";}, false);

全屏样式设置

在浏览器全屏的使用我们还可以进行样式设置

html:-moz-full-screen { 
background: red; 
} 

html:-webkit-full-screen { 
background: red; 
} 

html:fullscreen { 
background: red; 
}

附录

1 一个在线的Demo

    http://robnyman.github.io/fullscreen/

2   HTML5全屏API之网络钓鱼

      http://www.36ria.com/5807

3   jquery封装的全屏插件

     http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/

4  更加详细的全屏API介绍

    4.1 https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode

    4.2  https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html

5  HTML5全屏API在FireFox/Chrome中的显示差异

   http://www.zhangxinxu.com/wordpress/2012/10/html5-full-screen-api-firefox-chrome-difference/

Javascript 相关文章推荐
JavaScript Promise启示录
Aug 12 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 Javascript
JS解析url查询参数的简单代码
Aug 06 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
微信小程序制作扭蛋机代码实例
Sep 24 Javascript
微信小程序 冒泡事件原理解析
Sep 27 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 Javascript
浅析JavaScript基本类型与引用类型
May 28 #Javascript
最短的IE判断var ie=!-[1,]分析
May 28 #Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 #Javascript
什么是cookie?js手动创建和存储cookie
May 27 #Javascript
js打开windows上的可执行文件示例
May 27 #Javascript
JavaScript数值数组排序示例分享
May 27 #Javascript
JavaScript作用域链示例分享
May 27 #Javascript
You might like
剖析 PHP 中的输出缓冲
2006/12/21 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
浅谈Koa服务限流方法实践
2017/10/23 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
学习python (2)
2006/10/31 Python
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python实现文本文件合并
2015/12/29 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
OpenCV 边缘检测
2019/07/10 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
一年级班主任寄语
2014/01/19 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
2014年大学生工作总结
2014/11/20 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang