fix clicks on vertical slides in overview
This commit is contained in:
		
							
								
								
									
										33
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -291,7 +291,7 @@ var Reveal = (function(){ | ||||
|  | ||||
| 		var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ); | ||||
|  | ||||
| 		for( var i = 0, len = horizontalSlides.length; i < len; i++ ) { | ||||
| 		for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) { | ||||
| 			var hslide = horizontalSlides[i], | ||||
| 				htransform = 'translateZ(-2500px) translate(' + ( ( i - indexh ) * 105 ) + '%, 0%)'; | ||||
| 			 | ||||
| @@ -303,15 +303,17 @@ var Reveal = (function(){ | ||||
| 			hslide.style.OTransform = htransform; | ||||
| 			hslide.style.transform = htransform; | ||||
|  | ||||
| 			// Navigate to this slide on click | ||||
| 			hslide.addEventListener( 'click', onOverviewSlideClicked, true ); | ||||
|  | ||||
| 			var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '>section' ) ); | ||||
| 			var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( 'section' ) ); | ||||
|  | ||||
| 			for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) { | ||||
| 				var vslide = verticalSlides[j], | ||||
| 					vtransform = 'translateZ(0px) translate(0%, ' + ( ( j - indexv ) * 105 ) + '%)'; | ||||
| 					vtransform = 'translate(0%, ' + ( ( j - indexv ) * 105 ) + '%)'; | ||||
|  | ||||
| 				hslide.setAttribute( 'data-index-v', j ); | ||||
| 				vslide.setAttribute( 'data-index-h', i ); | ||||
| 				vslide.setAttribute( 'data-index-v', j ); | ||||
| 				vslide.style.display = 'block'; | ||||
| 				vslide.style.WebkitTransform = vtransform; | ||||
| 				vslide.style.MozTransform = vtransform; | ||||
| @@ -319,19 +321,25 @@ var Reveal = (function(){ | ||||
| 				vslide.style.OTransform = vtransform; | ||||
| 				vslide.style.transform = vtransform; | ||||
|  | ||||
| 				hslide.addEventListener( 'click', onOverviewSlideClicked, true ); | ||||
| 				// Navigate to this slide on click | ||||
| 				vslide.addEventListener( 'click', onOverviewSlideClicked, true ); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Exits the slide overview and enters the currently | ||||
| 	 * active slide. | ||||
| 	 */ | ||||
| 	function deactivateOverview() { | ||||
| 		var slides = Array.prototype.slice.call( document.querySelectorAll( '#main section' ) ); | ||||
|  | ||||
| 		document.body.classList.remove( 'overview' ); | ||||
|  | ||||
| 		var slides = Array.prototype.slice.call( document.querySelectorAll( '#main section' ) ); | ||||
|  | ||||
| 		for( var i = 0, len = slides.length; i < len; i++ ) { | ||||
| 			var element = slides[i]; | ||||
|  | ||||
| 			// Resets all transforms to use the external styles | ||||
| 			element.style.WebkitTransform = ''; | ||||
| 			element.style.MozTransform = ''; | ||||
| 			element.style.msTransform = ''; | ||||
| @@ -344,11 +352,22 @@ var Reveal = (function(){ | ||||
| 		slide(); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Checks if the overview is currently active. | ||||
| 	 *  | ||||
| 	 * @return {Boolean} true if the overview is active, | ||||
| 	 * false otherwise | ||||
| 	 */ | ||||
| 	function overviewIsActive() { | ||||
| 		return document.body.classList.contains( 'overview' ); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Invoked when a slide is and we're in the overview. | ||||
| 	 */ | ||||
| 	function onOverviewSlideClicked( event ) { | ||||
| 		// TODO There's a bug here where the event listeners are not  | ||||
| 		// removed after deactivating the overview. | ||||
| 		if( overviewIsActive() ) { | ||||
| 			event.preventDefault(); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user