用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 相关文章推荐
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
Sep 19 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
javascript数据类型验证方法
Dec 31 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
Firefox div高度自适应
2009/04/28 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
vue mounted组件的使用
2018/06/18 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
详解python pandas 分组统计的方法
2019/07/30 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
什么是事务?事务有哪些性质?
2012/03/11 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
水电工岗位职责
2014/02/12 职场文书
党支部承诺书范文
2014/03/28 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
九华山导游词
2015/02/03 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
党支部季度考核意见
2015/06/02 职场文书
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js