一个支持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开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
246 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
3月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
|
3月前
|
Web App开发 前端开发 JavaScript
手摸手教你,从0到1开发一个Chrome浏览器插件
开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
305 8
|
3月前
|
Web App开发
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
135 0
Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
|
4月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
Chrome插件实现问题之最新的 Chrome 浏览器架构有什么新的改变吗
|
4月前
|
JavaScript 前端开发 Web App开发
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
Chrome插件实现问题之单进程浏览器的不稳定主要体现在什么地方
|
4月前
|
Web App开发 数据可视化 前端开发
Chrome插件实现问题之content-scripts能访问哪些Chrome API
Chrome插件实现问题之content-scripts能访问哪些Chrome API
|
4月前
|
Web App开发 前端开发 JavaScript
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作
Chrome插件实现问题之用户在浏览器中输入URL后,浏览器进程会进行什么操作
|
4月前
|
Web App开发 JavaScript 前端开发
Chrome插件实现问题之在Manifest V2中,设置插件的图标要如何解决
Chrome插件实现问题之在Manifest V2中,设置插件的图标要如何解决
|
4月前
|
缓存 安全 Web App开发
Chrome插件实现问题之网络进程接收到URL请求后会如何解决
Chrome插件实现问题之网络进程接收到URL请求后会如何解决