Skip to content

Instantly share code, notes, and snippets.

@jonchretien
Last active October 13, 2015 05:57
Show Gist options
  • Save jonchretien/4149550 to your computer and use it in GitHub Desktop.
Save jonchretien/4149550 to your computer and use it in GitHub Desktop.
Full Screen Toggler
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css" media="screen">
.shell:-moz-full-screen,
.shell:-webkit-full-screen {
width: 100% !important;
}
.content {
background: red;
height: 400px;
width: 400px;
}
.hidden {
display: none;
}
:-moz-full-screen .tohide {
display: none;
}
:-webkit-full-screen .tohide {
display: none;
}
</style>
</head>
<body>
<div id="js-shell" class="shell">
<div class="content"></div>
</div>
<script src="js/fullScreenToggler.js"></script>
</body>
</html>
(function() {
'use strict';
var FullScreenToggler = {
enterButton: null,
exitButton: null,
init: function() {
if ( document.fullscreenEnabled || document.mozFullScreenEnabled || document.documentElement.webkitRequestFullScreen ) {
this.insertButtons();
}
},
insertButtons: function() {
document.getElementById('js-shell').insertAdjacentHTML('beforeend', '<button id="js-enterButton" class="tohide">Enter Fullscreen Mode</button><button id="js-exitButton" class="hidden">Exit Fullscreen Mode</button>');
this.enterButton = document.getElementById('js-enterButton'),
this.exitButton = document.getElementById('js-exitButton');
this.setEventHandlers();
},
setEventHandlers: function() {
var self = this;
this.enterButton.addEventListener('click', function() { self.requestFullscreen(document.documentElement); }, 'false');
this.exitButton.addEventListener('click', this.exitFullscreen.bind(this), 'false');
},
requestFullscreen: function(element) {
if ( element.requestFullscreen ) {
element.requestFullscreen();
} else if ( element.mozRequestFullScreen ) {
element.mozRequestFullScreen();
} else if ( element.webkitRequestFullScreen ) {
element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
}
this.exitButton.classList.remove('hidden');
},
exitFullscreen: function() {
if ( document.exitFullscreen ) {
document.exitFullscreen();
} else if ( document.mozCancelFullScreen ) {
document.mozCancelFullScreen();
} else if ( document.webkitExitFullscreen ) {
document.webkitExitFullscreen();
}
this.exitButton.classList.add('hidden');
}
};
FullScreenToggler.init();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment