diff --git a/src/js/modules/webslides.js b/src/js/modules/webslides.js index 20b1fbc..0dc241d 100644 --- a/src/js/modules/webslides.js +++ b/src/js/modules/webslides.js @@ -417,6 +417,32 @@ export default class WebSlides { return this.el.classList.contains(CLASSES.DISABLED); } + /** + * Puts the browser into fullscreen + */ + fullscreen() { + const el = document.documentElement; + const isFullscreen = document.fullscreen + || document.mozFullScreen + || document.webkitIsFullScreen + || document.msFullScreenElement; + + if(!isFullscreen) { + const requestFullscreen = el.requestFullscreen + || el.webkitRequestFullScreen + || el.mozRequestFullScreen + || el.msRequestFullscreen; + requestFullscreen.call(el); + } else { + const cancelFullscreen = document.exitFullScreen + || document.mozCancelFullScreen + || document.webkitCancelFullScreen + || document.msExitFullscreen; + + cancelFullscreen.call(document); + } + } + /** * Registers a plugin to be loaded when the instance is created. It allows * (on purpose) to replace default plugins. diff --git a/src/js/plugins/keyboard.js b/src/js/plugins/keyboard.js index 46f9882..39a995a 100644 --- a/src/js/plugins/keyboard.js +++ b/src/js/plugins/keyboard.js @@ -61,6 +61,9 @@ export default class Keyboard { case Keys.RIGHT: method = !this.ws_.isVertical ? this.ws_.goNext : null; break; + case Keys.F: + method = this.ws_.fullscreen; + break; } if (method) { diff --git a/src/js/utils/keys.js b/src/js/utils/keys.js index 5a27e76..19a80d8 100644 --- a/src/js/utils/keys.js +++ b/src/js/utils/keys.js @@ -11,7 +11,8 @@ const Keys = { DOWN: 40, PLUS: [107, 171], MINUS: [109, 173], - ESCAPE: 27 + ESCAPE: 27, + F: 70 }; export default Keys;