利用浏览器全屏api实现js全屏


Posted in Javascript onJanuary 16, 2014
(function () {
 var fullScreenApi = {
  supportsFullScreen : false,
  isFullScreen : function () {
   return false;
  },
  requestFullScreen : function () {},
  cancelFullScreen : function () {},
  fullScreenEventName : '',
  prefix : ''
 },
 browserPrefixes = 'webkit moz o ms khtml'.split(' ');
 // check for native support
 if (typeof document.cancelFullScreen != 'undefined') {
  fullScreenApi.supportsFullScreen = true;
 } else {
  // check for fullscreen support by vendor prefix
  for (var i = 0, il = browserPrefixes.length; i < il; i++) {
   fullScreenApi.prefix = browserPrefixes[i];
   if (typeof document[fullScreenApi.prefix + 'CancelFullScreen'] != 'undefined') {
    fullScreenApi.supportsFullScreen = true;
    break;
   }
  }
 }
 // update methods to do something useful
 if (fullScreenApi.supportsFullScreen) {
  fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange';
  fullScreenApi.isFullScreen = function () {
   switch (this.prefix) {
   case '':
    return document.fullScreen;
   case 'webkit':
    return document.webkitIsFullScreen;
   default:
    return document[this.prefix + 'FullScreen'];
   }
  }
  fullScreenApi.requestFullScreen = function (el) {
   return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen']();
  }
  fullScreenApi.cancelFullScreen = function (el) {
   return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen']();
  }
 }
 // jQuery plugin
 if (typeof jQuery != 'undefined') {
  jQuery.fn.requestFullScreen = function () {
   return this.each(function () {
    if (fullScreenApi.supportsFullScreen) {
     fullScreenApi.requestFullScreen(this);
    }
   });
  };
 }
 // export api
 window.fullScreenApi = fullScreenApi;
})();
$(function(){
 $("#fullScreenBtn").click(function(){
  $("#fullScreen").requestFullScreen();
 });
 if(window.top != self){
  $("#tip").text("iframe里面不能演示该功能!请点击右下角的全屏查看!").show();
 }
});
if (!fullScreenApi.supportsFullScreen) {
 alert("您的破浏览器不支持全屏API哦,请换高版本的chrome或者firebox!");
}
<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>javascript启用全屏</title> <script id="jquery_183" type="text/javascript" class="library" src=jquery-1.8.3.min.js"></script>
 </head>
 <body>
  <button id="fullScreenBtn">点击我进入全屏模式</button>
  <div id="fullScreen" class="fullScreen">
    <h1>
     我是全屏区域的内容!
   </h1>
   <div id="tip" style="display:none;">
   </div>
  </div>
 </body>
</html>
body{
background:#fff;
}
button{
 border:1px solid #ccc;
 cursor:pointer;
  display:block;
  margin:auto;
  position:relative;
  top:100px;
}
.fullScreen{
 padding-top:10%;
 text-align:center;
 background: none repeat scroll 0 0 #FFFFFF;
}
/* Mozilla proposal (dash) */
.fullScreen:full-screen {
    width:100%;
    height:100%;
}
/* W3C proposal (no dash) */
.fullScreen:fullscreen {
    width:100%;
    height:100%;
}
/* currently working vendor prefixes */
.fullScreen:-webkit-full-screen, .fullScreen:-moz-full-screen {
    width:100%;
    height:100%;
}
:-webkit-full-screen{
width:100%;
    height:100%;
}
Javascript 相关文章推荐
javascript StringBuilder类实现
Dec 22 Javascript
JS中confirm,alert,prompt函数使用区别分析
Apr 01 Javascript
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
Feb 18 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
Dec 25 Javascript
react MPA 多页配置详解
Oct 18 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 #Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 #Javascript
javascript中验证大写字母、数字和中文
Jan 15 #Javascript
setTimeout自动触发一个js的方法
Jan 15 #Javascript
JS记录用户登录次数实现代码
Jan 15 #Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 #Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 #Javascript
You might like
无限级别菜单的实现
2006/10/09 PHP
说明的比较细的php 正则学习实例
2008/07/30 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
Python常见的pandas用法demo示例
2019/03/16 Python
pandas如何处理缺失值
2019/07/31 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
《我的信念》教学反思
2014/02/15 职场文书
开门红主持词
2014/04/02 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Python学习之异常中的finally使用详解
2022/03/16 Python