Skip to content

Instantly share code, notes, and snippets.

@leastbad
Created August 7, 2018 00:16
Show Gist options
  • Save leastbad/4545ac76957437d9b6b0e420b70410ee to your computer and use it in GitHub Desktop.
Save leastbad/4545ac76957437d9b6b0e420b70410ee to your computer and use it in GitHub Desktop.
Drop-in client dist version of fscreen
// https://github.com/rafrex/fscreen
'use strict';
var key = {
fullscreenEnabled: 0,
fullscreenElement: 1,
requestFullscreen: 2,
exitFullscreen: 3,
fullscreenchange: 4,
fullscreenerror: 5
};
var webkit = ['webkitFullscreenEnabled', 'webkitFullscreenElement', 'webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitfullscreenchange', 'webkitfullscreenerror'];
var moz = ['mozFullScreenEnabled', 'mozFullScreenElement', 'mozRequestFullScreen', 'mozCancelFullScreen', 'mozfullscreenchange', 'mozfullscreenerror'];
var ms = ['msFullscreenEnabled', 'msFullscreenElement', 'msRequestFullscreen', 'msExitFullscreen', 'MSFullscreenChange', 'MSFullscreenError'];
var vendor = 'fullscreenEnabled' in document && Object.keys(key) || webkit[0] in document && webkit || moz[0] in document && moz || ms[0] in document && ms || [];
var fscreen = {
requestFullscreen: function requestFullscreen(element) {
return element[vendor[key.requestFullscreen]]();
},
requestFullscreenFunction: function requestFullscreenFunction(element) {
return element[vendor[key.requestFullscreen]];
},
get exitFullscreen() {
return document[vendor[key.exitFullscreen]].bind(document);
},
addEventListener: function addEventListener(type, handler, options) {
return document.addEventListener(vendor[key[type]], handler, options);
},
removeEventListener: function removeEventListener(type, handler, options) {
return document.removeEventListener(vendor[key[type]], handler, options);
},
get fullscreenEnabled() {
return Boolean(document[vendor[key.fullscreenEnabled]]);
},
set fullscreenEnabled(val) {},
get fullscreenElement() {
return document[vendor[key.fullscreenElement]];
},
set fullscreenElement(val) {},
get onfullscreenchange() {
return document[('on' + vendor[key.fullscreenchange]).toLowerCase()];
},
set onfullscreenchange(handler) {
return document[('on' + vendor[key.fullscreenchange]).toLowerCase()] = handler;
},
get onfullscreenerror() {
return document[('on' + vendor[key.fullscreenerror]).toLowerCase()];
},
set onfullscreenerror(handler) {
return document[('on' + vendor[key.fullscreenerror]).toLowerCase()] = handler;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment