一个支持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,如需转载请自行联系原作者


相关文章
|
1天前
|
Web App开发 安全 前端开发
一个接口4个步骤轻松搞定最新版Chrome、Edge、Firefox浏览器集成ActiveX控件
目前的浏览器市场,谷歌浏览器占据了半壁江山,因此,谷歌也是最有话语权的,2015年开始取消支持 NPAPI 插件,2022 年10月停止支持 PPAPI 插件;而曾经老大哥IE浏览器也已停止服务,退出历史舞台,导致大量曾经安全、便捷的ActiveX控件无法使用。为了解决这个难题,本人特研发出allWebPlugin中间件,重新让所有ActiveX控件能在谷歌、火狐等浏览器使用。
|
3月前
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
476 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
5月前
|
Web App开发 存储 前端开发
《Chrome谷歌插件Top10》开发最好用的谷歌插件
本文介绍了多个实用的浏览器插件及其安装方法。包括CSDN浏览器助手,提供高效开发工具;FeHelper,前端必备工具,支持格式化、压缩等功能;uBlock Origin,有效屏蔽广告和弹窗;PageLiner,网页标尺工具,便于前端设计;Fatkun,批量下载图片;Smallpdf,文件转换工具;Octotree,GitHub代码树插件;Awesome Screenshot,截图与录屏工具;ColorZilla,颜色拾取器;Dark Reader,暗黑模式阅读插件。安装方式有通过Chrome商店搜索或下载crx插件本地安装。
90 11
|
5月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
69 4
|
5月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
386 8
|
5月前
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
224 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
|
6月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
|
6月前
|
JavaScript 前端开发 Web App开发
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
|
5月前
|
Web App开发 前端开发 JavaScript
灵魂拷问-前端到底能做些什么?--chrome插件篇
本文会从浏览器插件应用场景切入,穿插插件基础能力和常见入口的介绍,核心回答如下三个问题:插件可以被使用在哪些场景?不同的使用场景我们的主要代码实现思路是怎样的?我们可以从哪些角度入手自己开发一款可以落地实用的浏览器插件?
|
6月前
|
Web App开发 数据可视化 前端开发
Chrome插件实现问题之content-scripts能访问哪些Chrome API
Chrome插件实现问题之content-scripts能访问哪些Chrome API