利用浏览器全屏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的attr方法来修改onclick值
Jul 07 Javascript
基于jquery实现的树形菜单效果代码
Sep 06 Javascript
简单的分页代码js实现
May 17 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
Dec 02 Javascript
AngularJS的脏检查深入分析
Apr 22 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
快速解决vue在ios端下点击响应延时的问题
Aug 27 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
js中let能否完全替代IIFE
Jun 15 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
Vue中使用better-scroll实现轮播图组件
Mar 07 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
咖啡的传说和历史
2021/03/03 新手入门
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP调用其他文件中的类
2018/04/02 PHP
js获取div高度的代码
2008/08/09 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
理解javascript闭包
2015/12/15 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
javascript的this关键字详解
2019/05/20 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
Python装饰器用法实例分析
2019/01/14 Python
django如何通过类视图使用装饰器
2019/07/24 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
java程序员面试交流
2012/11/29 面试题
预备党员党校学习自我评价分享
2013/11/12 职场文书
管理站站长岗位职责
2013/11/27 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
元旦活动感言
2014/03/08 职场文书
护士节策划方案
2014/05/19 职场文书
2014年保管员工作总结
2014/11/18 职场文书
武侯祠导游词
2015/02/04 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
Elasticsearch 基本查询和组合查询
2022/04/19 Python