68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
/*global define*/
|
||
define(
|
||
[ 'util/browser', 'util/el' ],
|
||
function ( browser, elHelper ) {
|
||
// the fullscreen button
|
||
// includes a lot of code to account for the different browser implementations
|
||
function FullscreenView ( parentEl ) {
|
||
if ( ! ( this instanceof FullscreenView ) ) {
|
||
return new FullscreenView( parentEl );
|
||
}
|
||
|
||
var self = this;
|
||
var isInFullScreen = false;
|
||
var fullscreenButtonEl;
|
||
|
||
if ( browser.test( 'fullscreen' ) ) {
|
||
fullscreenButtonEl = elHelper.createButton( 'controls.fullscreen', 'controls.fullscreentitle', 'fullscreen-button', parentEl, toggleFullscreen );
|
||
|
||
document.addEventListener( 'webkitfullscreenchange', fullscreenChanged, false );
|
||
document.addEventListener( 'mozfullscreenchange', fullscreenChanged, false );
|
||
document.addEventListener( 'fullscreenchange', fullscreenChanged, false );
|
||
document.addEventListener( 'MSFullscreenChange', fullscreenChanged, false );
|
||
}
|
||
|
||
function fullscreenChanged ( event ) {
|
||
isInFullScreen = document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen;
|
||
|
||
if ( isInFullScreen ) {
|
||
document.documentElement.classList.add( 'is-fullscreen' );
|
||
} else {
|
||
document.documentElement.classList.remove( 'is-fullscreen' );
|
||
}
|
||
}
|
||
|
||
function toggleFullscreen () {
|
||
if ( isInFullScreen ) {
|
||
exitFullscreen();
|
||
} else {
|
||
requestFullScreen( document.documentElement );
|
||
}
|
||
}
|
||
|
||
function requestFullScreen ( el ) {
|
||
if ( el.requestFullscreen ) {
|
||
el.requestFullscreen();
|
||
} else if ( el.mozRequestFullScreen ) {
|
||
el.mozRequestFullScreen();
|
||
} else if ( el.webkitRequestFullscreen ) {
|
||
el.webkitRequestFullscreen();
|
||
} else if ( el.msRequestFullscreen ) {
|
||
el.msRequestFullscreen();
|
||
}
|
||
}
|
||
|
||
function exitFullscreen () {
|
||
if ( document.exitFullscreen ) {
|
||
document.exitFullscreen();
|
||
} else if ( document.mozCancelFullScreen ) {
|
||
document.mozCancelFullScreen();
|
||
} else if ( document.webkitExitFullscreen ) {
|
||
document.webkitExitFullscreen();
|
||
}
|
||
}
|
||
}
|
||
|
||
return FullscreenView;
|
||
}
|
||
); |