Skip to content

Instantly share code, notes, and snippets.

@arkadylukashov
Created December 19, 2012 04:01
Show Gist options
  • Select an option

  • Save arkadylukashov/4334298 to your computer and use it in GitHub Desktop.

Select an option

Save arkadylukashov/4334298 to your computer and use it in GitHub Desktop.
Simple jQuery element based Fullscreen API wrapper
(function($) {
$.fn.fullscreen = function(options) {
var settings = $.extend({
to: false,
exit: 'Normal size',
onScreenChange: $.noop,
onFail: $.noop
},options);
var methods = {
run: function() {
var selector = !settings.to ? this : $(this).find(settings.to);
settings.full = selector[0].innerText;
$(this).on('click',function() {
if (!methods.is()) {
selector[0].innerText = settings.exit;
return methods.enter();
} else {
selector[0].innerText = settings.full;
return methods.exit();
}
});
$(document).on('fullscreenchange mozfullscreenchange webkitfullscreenchange', function() {
return settings.onScreenChange( methods.is() );
})
},
is : function() {
return document.fullscreen || document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || false;
},
enter : function() {
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
}
else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
}
else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen();
}
else {
return settings.onFail();
}
},
exit : function() {
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
};
return methods.run.call(this);
}
})(jQuery)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment