UNPKG

saidai

Version:

A simple wrapper of Fullscreen API.

62 lines (49 loc) 1.48 kB
import knot from 'knot.js'; var d = document; var dd = document.documentElement; var getSupport = function (_, doc) { return _.reduce(function (prev, curr) { return (doc ? curr in doc : curr in d) ? curr : prev; }, undefined); }; var saidai = function (options) { if ( options === void 0 ) options = {}; var fullscreenchange = getSupport([ 'onfullscreenchange', 'onMSFullscreenChange', 'onmozfullscreenchange', 'onwebkitfullscreenchange' ]).substr(2); var fullscreenElement = getSupport([ 'fullscreenElement', 'msFullscreenElement', 'mozFullScreenElement', 'webkitFullscreenElement', 'webkitCurrentFullScreenElement' ]); var requestFullscreen = getSupport([ 'requestFullscreen', 'msRequestFullscreen', 'mozRequestFullScreen', 'webkitRequestFullscreen' ], dd); var exitFullscreen = getSupport([ 'exitFullscreen', 'cancelFullScreen', 'msExitFullscreen', 'mozCancelFullScreen', 'webkitExitFullscreen', 'webkitCancelFullScreen' ]); var instance = knot({ isFullscreen: function isFullscreen () { return !!d[fullscreenElement] }, request: function request (el) { el = el || dd; el[requestFullscreen].call(el); }, exit: function exit () { d[exitFullscreen].call(d); } }); d.addEventListener(fullscreenchange, function (_) { return instance.emit('change', instance.isFullscreen()); }); return instance }; export default saidai;