一个支持chrome、firefox的全屏插件

简介:

 话不多说,直接上demo,你可以点击下面的图片看效果。

  插件代码

( 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 );
                 }
             });
         };
     }
     window.fullScreenApi = fullScreenApi;
})();

  调用代码

$( function (){
     $( '#fullscreenbtn' ).click( function (){
         if (window.fullScreenApi.supportsFullScreen){
             window.fullScreenApi.requestFullScreen(document.getElementById( 'fullscreenbox' ));
         } else {
             alert( '就你这浏览器,基本就告别全屏功能了' );
         }
     });
});

  HTML代码结构

< a  id="fullscreenbtn">
     < img  id="fullscreenbox" style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012041400022949.gif" alt="" />
</ a >

  基于fullscreen功能,我们就可以做出很多效果,比如相册:

  http://eikes.github.com/jquery.fullscreen.js/

  又比如视频中的全屏功能:

  http://mediaelementjs.com/

  当然也不能不说我的HoorayOS中窗口全屏的使用:

  http://www.hoorayos.com/

  插件来源地址:http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/



    本文转自胡尐睿丶博客园博客,原文链接:http://www.cnblogs.com/hooray/archive/2012/04/14/2446593.html,如需转载请自行联系原作者


相关文章
|
3月前
|
Web App开发 人工智能 IDE
从痛点到解决方案:为什么我开发了Chrome元素截图插件
传统的截图方式要么截取整个页面然后手动裁剪,要么使用浏览器自带的截图功能,但效果都不理想。特别是当内容包含SVG元素或复杂样式时,截图质量和速度、便捷性往往不尽如人意。
172 4
|
3月前
|
Web App开发 人工智能 前端开发
产品发布策略:如何让Chrome插件在竞争激烈的市场中脱颖而出
Chrome Web Store每天新增很多个插件。插件刚发布,用户只有我自己,如何在这样的红海市场中找到自己的位置,是我一直在思考的问题。
115 0
|
11月前
|
Web App开发 存储 开发者
Chrome 插件上架发布全流程指南
浏览器插件开发完以后,要发布到 Chrome Web Store上,也是需要颇费一番周折的,本文就从注册账号开始,一直到最后发布上架的全流程进行指导,希望帮助你提供一些经验,避免踩坑,耗时耗力。
968 8
|
11月前
|
Web App开发 数据安全/隐私保护 开发者
Firefox Add-ons 插件上架发布全流程指南
本文详细介绍了如何将浏览器插件上架到 Firefox Add-ons,涵盖从注册开发者账号、打包插件、提交审核到最终发布的全流程。与 Chrome Web Store 类似,但 Firefox 的流程更为简化,注册免费且对权限审查相对宽松。文章还对比了两者的关键差异,帮助读者更快上手 Firefox 插件的发布。如果你已经熟悉 Chrome 的上架流程,这篇文章会让你更轻松地在 Firefox 平台上发布插件,触达更多用户。
398 0
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
3286 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
Web App开发 存储 前端开发
《Chrome谷歌插件Top10》开发最好用的谷歌插件
本文介绍了多个实用的浏览器插件及其安装方法。包括CSDN浏览器助手,提供高效开发工具;FeHelper,前端必备工具,支持格式化、压缩等功能;uBlock Origin,有效屏蔽广告和弹窗;PageLiner,网页标尺工具,便于前端设计;Fatkun,批量下载图片;Smallpdf,文件转换工具;Octotree,GitHub代码树插件;Awesome Screenshot,截图与录屏工具;ColorZilla,颜色拾取器;Dark Reader,暗黑模式阅读插件。安装方式有通过Chrome商店搜索或下载crx插件本地安装。
426 11
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
185 4
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
944 8
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
518 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件