Skip to content

Instantly share code, notes, and snippets.

@tJener
Last active December 14, 2015 22:39
Show Gist options
  • Save tJener/5160480 to your computer and use it in GitHub Desktop.
Save tJener/5160480 to your computer and use it in GitHub Desktop.
Using escape key to trigger Pointer Lock.
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
var elem = document.body;
var isLocked = false;
var escDown = false;
elem.requestFullscreen =
elem.requestFullscreen ||
elem.mozRequestFullscreen ||
elem.mozRequestFullScreen ||
elem.webkitRequestFullscreen;
elem.requestPointerLock =
elem.requestPointerLock ||
elem.mozRequestPointerLock ||
elem.webkitRequestPointerLock;
var enablePointerLock = function() {
if ( elem.webkitRequestPointerLock ) {
elem.requestPointerLock();
} else {
elem.requestFullscreen();
}
};
var onFullscreenChange = function() {
elem.requestPointerLock();
};
document.addEventListener( 'fullscreenchange', onFullscreenChange );
document.addEventListener( 'mozfullscreenchange', onFullscreenChange );
document.addEventListener( 'webkitfullscreenchange', onFullscreenChange );
var onPointerLockChange = function() {
isLocked = !isLocked;
};
document.addEventListener( 'pointerlockchange', onPointerLockChange );
document.addEventListener( 'mozpointerlockchange', onPointerLockChange );
document.addEventListener( 'webkitpointerlockchange', onPointerLockChange );
elem.addEventListener( 'keydown', function( e ) {
if ( e.keyCode === 27 ) {
escDown = true;
}
});
elem.addEventListener( 'keyup', function( e ) {
if ( e.keyCode === 27 ) {
if ( !isLocked && escDown ) {
enablePointerLock();
}
escDown = false;
}
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment