利用浏览器全屏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 相关文章推荐
jquery时间下拉框小例子
Apr 15 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
Jquery chosen动态设置值实例介绍
Aug 08 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 Javascript
JavaScript不使用prototype和new实现继承机制
Dec 29 Javascript
比较常见的javascript中定义函数的区别
Nov 09 Javascript
jquery实现简单Tab切换菜单效果
Jul 17 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
VsCode里的Vue模板的实现
Aug 12 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
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
php利用header函数下载各种文件
2016/08/24 PHP
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python素数筛选法浅析
2018/03/19 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
python+django+rest框架配置创建方法
2019/08/31 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
给朋友的道歉信
2014/01/09 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
人事任命书格式
2014/06/05 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2014年销售工作总结
2014/12/01 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
城管年度个人总结
2015/02/28 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python
muduo TcpServer模块源码分析
2022/04/26 Redis