利用浏览器全屏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 相关文章推荐
yepnope.js 异步加载资源文件
Sep 08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Jul 21 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
vue实现全选和反选功能
Aug 31 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
JS实现扫码枪扫描二维码功能
Jan 03 Javascript
VSCode 配置uni-app的方法
Jul 11 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
6种php上传图片重命名的方法实例
2013/11/04 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
一个获取第n个元素节点的js函数
2014/09/02 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
vue组件间的参数传递实例详解
2019/04/26 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
django教程如何自学
2020/07/31 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
学校火灾防控方案
2014/06/09 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js