Last active
August 29, 2015 14:02
-
-
Save nevergiveup-j/a744c478c0b63300071a to your computer and use it in GitHub Desktop.
HTML5 全屏API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Native FullScreen JavaScript API | |
CopyRight: Johndyer, http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/ | |
------------- | |
Assumes Mozilla naming conventions instead of W3C for now | |
*/ | |
(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; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment