diff options
Diffstat (limited to 'geschichte/js/controllers/pointer.js')
-rw-r--r-- | geschichte/js/controllers/pointer.js | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/geschichte/js/controllers/pointer.js b/geschichte/js/controllers/pointer.js deleted file mode 100644 index f632fce..0000000 --- a/geschichte/js/controllers/pointer.js +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Handles hiding of the pointer/cursor when inactive. - */ -export default class Pointer { - - constructor( Reveal ) { - - this.Reveal = Reveal; - - // Throttles mouse wheel navigation - this.lastMouseWheelStep = 0; - - // Is the mouse pointer currently hidden from view - this.cursorHidden = false; - - // Timeout used to determine when the cursor is inactive - this.cursorInactiveTimeout = 0; - - this.onDocumentCursorActive = this.onDocumentCursorActive.bind( this ); - this.onDocumentMouseScroll = this.onDocumentMouseScroll.bind( this ); - - } - - /** - * Called when the reveal.js config is updated. - */ - configure( config, oldConfig ) { - - if( config.mouseWheel ) { - document.addEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false ); // FF - document.addEventListener( 'mousewheel', this.onDocumentMouseScroll, false ); - } - else { - document.removeEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false ); // FF - document.removeEventListener( 'mousewheel', this.onDocumentMouseScroll, false ); - } - - // Auto-hide the mouse pointer when its inactive - if( config.hideInactiveCursor ) { - document.addEventListener( 'mousemove', this.onDocumentCursorActive, false ); - document.addEventListener( 'mousedown', this.onDocumentCursorActive, false ); - } - else { - this.showCursor(); - - document.removeEventListener( 'mousemove', this.onDocumentCursorActive, false ); - document.removeEventListener( 'mousedown', this.onDocumentCursorActive, false ); - } - - } - - /** - * Shows the mouse pointer after it has been hidden with - * #hideCursor. - */ - showCursor() { - - if( this.cursorHidden ) { - this.cursorHidden = false; - this.Reveal.getRevealElement().style.cursor = ''; - } - - } - - /** - * Hides the mouse pointer when it's on top of the .reveal - * container. - */ - hideCursor() { - - if( this.cursorHidden === false ) { - this.cursorHidden = true; - this.Reveal.getRevealElement().style.cursor = 'none'; - } - - } - - destroy() { - - this.showCursor(); - - document.removeEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false ); - document.removeEventListener( 'mousewheel', this.onDocumentMouseScroll, false ); - document.removeEventListener( 'mousemove', this.onDocumentCursorActive, false ); - document.removeEventListener( 'mousedown', this.onDocumentCursorActive, false ); - - } - - /** - * Called whenever there is mouse input at the document level - * to determine if the cursor is active or not. - * - * @param {object} event - */ - onDocumentCursorActive( event ) { - - this.showCursor(); - - clearTimeout( this.cursorInactiveTimeout ); - - this.cursorInactiveTimeout = setTimeout( this.hideCursor.bind( this ), this.Reveal.getConfig().hideCursorTime ); - - } - - /** - * Handles mouse wheel scrolling, throttled to avoid skipping - * multiple slides. - * - * @param {object} event - */ - onDocumentMouseScroll( event ) { - - if( Date.now() - this.lastMouseWheelStep > 1000 ) { - - this.lastMouseWheelStep = Date.now(); - - let delta = event.detail || -event.wheelDelta; - if( delta > 0 ) { - this.Reveal.next(); - } - else if( delta < 0 ) { - this.Reveal.prev(); - } - - } - - } - -} \ No newline at end of file |