wholescreen.js
Version:
Minimal cross-browser wrapper of the Fullscreen API. Handles vendor prefixes for you!
4 lines (3 loc) • 1.45 kB
JavaScript
/*! wholescreen.js v0.3.1 | (c) 2018 Albin Larsson | Licensed under MIT */
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):e.wholescreen=n()}(this,function(){"use strict";var e=["","webkit","moz","ms","MS"],n=["fullscreen","Fullscreen","FullScreen"];function t(e,n){if("object"!=typeof document)return"";var t,r=n?document[n]:document;return(t=e,t.reduce(function(e,n){return[].concat.apply([],e.map(function(e){return n.map(function(n){return""+e+n})}))},[""])).find(function(e){return Boolean(r&&e&&e in r)})||""}var r={element:t([e,n,["Element"]]),exit:t([e,["Exit","exit","Cancel","cancel"],n]),request:t([e,["request","Request"],n],"body"),supported:t([e,n,["Enabled"]])},o={change:t([["on"],e,n,["change","Change"]]).slice(2),error:t([["on"],e,n,["error","Error"]]).slice(2)},u={get active(){return Boolean(document[r.element])},get element(){return document[r.element]||null},events:o,exit:function(){return r.exit&&document[r.exit]()},off:function(e,n,t){return o[e]&&document.removeEventListener(o[e],n,t)},on:function(e,n,t){return o[e]&&document.addEventListener(o[e],n,t)},props:r,request:function(e){return r.request&&(e||document.documentElement)[r.request]()},get supported(){return Boolean(document[r.supported])},toggle:function(e,n){return void 0===n&&(n=!u.element),n?u.request(e):u.exit()}};return u});
//# sourceMappingURL=wholescreen.min.js.map