利用浏览器全屏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 相关文章推荐
用js实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
input按钮的事件处理大全
Dec 10 Javascript
jQuery中获取checkbox选中项等操作及注意事项
Nov 24 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
js实现筛选功能
Nov 24 Javascript
vue实现锚点定位功能
Jun 29 Vue.js
JavaScript获取URL参数的方法分享
Apr 07 Javascript
React更新渲染原理深入分析
Dec 24 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开发大型项目的一点经验
2006/10/09 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
php接口技术实例详解
2016/12/07 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
DBA的职责都有哪些
2012/05/16 面试题
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
工会趣味活动方案
2014/08/18 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
党校学习党性分析材料
2014/12/19 职场文书
思想品德评语大全
2014/12/31 职场文书
小学运动会开幕词
2015/01/28 职场文书
地震慰问信
2015/02/14 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
幽灵公主观后感
2015/06/09 职场文书
秋收起义观后感
2015/06/11 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
Java输出Hello World完美过程解析
2021/06/13 Java/Android
MySQL分区以及建索引的方法总结
2022/04/13 MySQL