Shows keyboard shorcuts overlay on pressing question mark
This commit is contained in:
		| @@ -1729,6 +1729,39 @@ body { | |||||||
|  	} |  	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  	.reveal .preview-link-overlay .viewport .shortcuts { | ||||||
|  |  		-webkit-column-count: 2;  | ||||||
|  | 			 -moz-column-count: 2;  | ||||||
|  | 				    column-count: 2; | ||||||
|  | 		font-size: 20px; | ||||||
|  | 		height: 100%; | ||||||
|  | 		margin-left: 35%; | ||||||
|  | 		margin-top: 20px; | ||||||
|  | 		text-align: center; | ||||||
|  |  	} | ||||||
|  |  | ||||||
|  |  	.reveal .preview-link-overlay .viewport .shortcuts table { | ||||||
|  |  		border: 1px solid #fff; | ||||||
|  |  		border-collapse: collapse; | ||||||
|  |  		font-size: 14px; | ||||||
|  |  	} | ||||||
|  |  | ||||||
|  |  	.reveal .preview-link-overlay .viewport .shortcuts table th{ | ||||||
|  |  		border: 1px solid #fff; | ||||||
|  |  		height: 30px; | ||||||
|  |  		width: 200px; | ||||||
|  |  		padding: 10px; | ||||||
|  |  		vertical-align: middle; | ||||||
|  |  	} | ||||||
|  |  | ||||||
|  |  	.reveal .preview-link-overlay .viewport .shortcuts table tr td{ | ||||||
|  |  		border: 1px solid #fff; | ||||||
|  |  		height: 30px; | ||||||
|  |  		vertical-align: middle; | ||||||
|  |  		padding: 5px; | ||||||
|  |  	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /********************************************* | /********************************************* | ||||||
|  * PLAYBACK COMPONENT |  * PLAYBACK COMPONENT | ||||||
|   | |||||||
							
								
								
									
										65
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -177,6 +177,20 @@ var Reveal = (function(){ | |||||||
| 			startCount: 0, | 			startCount: 0, | ||||||
| 			captured: false, | 			captured: false, | ||||||
| 			threshold: 40 | 			threshold: 40 | ||||||
|  | 		}, | ||||||
|  |  | ||||||
|  | 		// Holds information about the keyboard shortcuts | ||||||
|  | 		keyboard_shortcuts = { | ||||||
|  | 			'p': "Previous slide", | ||||||
|  | 			'n': "Next slide", | ||||||
|  | 			'h': "Navigate left", | ||||||
|  | 			'l': "Navigate right", | ||||||
|  | 			'k': "Navigate up", | ||||||
|  | 			'j': "Navigate down", | ||||||
|  | 			'Home': "First slide", | ||||||
|  | 			'End': "Last slide", | ||||||
|  | 			'b': "Pause", | ||||||
|  | 			'f': "Fullscreen" | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -646,6 +660,7 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 		if( config.keyboard ) { | 		if( config.keyboard ) { | ||||||
| 			document.addEventListener( 'keydown', onDocumentKeyDown, false ); | 			document.addEventListener( 'keydown', onDocumentKeyDown, false ); | ||||||
|  | 			document.addEventListener( 'keypress', onDocumentKeyPress, false ); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		if( config.progress && dom.progress ) { | 		if( config.progress && dom.progress ) { | ||||||
| @@ -689,6 +704,7 @@ var Reveal = (function(){ | |||||||
| 		eventsAreBound = false; | 		eventsAreBound = false; | ||||||
|  |  | ||||||
| 		document.removeEventListener( 'keydown', onDocumentKeyDown, false ); | 		document.removeEventListener( 'keydown', onDocumentKeyDown, false ); | ||||||
|  | 		document.removeEventListener( 'keypress', onDocumentKeyPress, false ); | ||||||
| 		window.removeEventListener( 'hashchange', onWindowHashChange, false ); | 		window.removeEventListener( 'hashchange', onWindowHashChange, false ); | ||||||
| 		window.removeEventListener( 'resize', onWindowResize, false ); | 		window.removeEventListener( 'resize', onWindowResize, false ); | ||||||
|  |  | ||||||
| @@ -1019,6 +1035,44 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Opens a overlay window for the keyboard shortcuts. | ||||||
|  | 	 */ | ||||||
|  | 	function openShortcutsOverlay() { | ||||||
|  |  | ||||||
|  | 		closePreview(); | ||||||
|  |  | ||||||
|  | 		dom.preview = document.createElement( 'div' ); | ||||||
|  | 		dom.preview.classList.add( 'preview-link-overlay' ); | ||||||
|  | 		dom.wrapper.appendChild( dom.preview ); | ||||||
|  |  | ||||||
|  | 		var html = '<h5>Keyboard Shortcuts</h5><br/>'; | ||||||
|  | 		html += '<table> <th>KEY</th> <th>ACTION</th>'; | ||||||
|  | 		for( var key in keyboard_shortcuts ) { | ||||||
|  | 			html += '<tr> <td>' + key + '</td> <td>' + keyboard_shortcuts[key] + '</td> </tr>' | ||||||
|  | 		} | ||||||
|  | 		html += '</table>'; | ||||||
|  |  | ||||||
|  | 		dom.preview.innerHTML = [ | ||||||
|  | 			'<header>', | ||||||
|  | 				'<a class="close" href="#"><span class="icon"></span></a>', | ||||||
|  | 			'</header>', | ||||||
|  | 			'<div class="viewport">', | ||||||
|  | 				'<div class="shortcuts">'+html+'</div>', | ||||||
|  | 			'</div>' | ||||||
|  | 		].join(''); | ||||||
|  |  | ||||||
|  | 		dom.preview.querySelector( '.close' ).addEventListener( 'click', function( event ) { | ||||||
|  | 			closePreview(); | ||||||
|  | 			event.preventDefault(); | ||||||
|  | 		}, false ); | ||||||
|  |  | ||||||
|  | 		setTimeout( function() { | ||||||
|  | 			dom.preview.classList.add( 'visible' ); | ||||||
|  | 		}, 1 ); | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Applies JavaScript-controlled layout rules to the | 	 * Applies JavaScript-controlled layout rules to the | ||||||
| 	 * presentation. | 	 * presentation. | ||||||
| @@ -2642,6 +2696,17 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Handler for the document level 'keypress' event. | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
|  | 	function onDocumentKeyPress( event ) { | ||||||
|  | 		// Check if the pressed key is question mark | ||||||
|  | 		if( event.shiftKey && event.charCode == 63 ) { | ||||||
|  | 			openShortcutsOverlay(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Handler for the document level 'keydown' event. | 	 * Handler for the document level 'keydown' event. | ||||||
| 	 */ | 	 */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user