move parallax code to separate method #595
This commit is contained in:
		
							
								
								
									
										65
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -1496,31 +1496,6 @@ var Reveal = (function(){ | ||||
| 		// Store references to the previous and current slides | ||||
| 		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide; | ||||
|  | ||||
| 		// Animate parallax background | ||||
| 		if( dom.wrapper.getAttribute( 'data-parallax-background' ) || config.parallaxBackgroundImage ) { | ||||
| 			var bs = dom.wrapper.style.backgroundSize.split( ' ' ), | ||||
| 				bgWidth, bgHeight; | ||||
|  | ||||
| 			if( bs.length === 1 ) { | ||||
| 				bgWidth = bgHeight = parseInt( bs[0], 10 ); | ||||
| 			} | ||||
| 			else { | ||||
| 				bgWidth = parseInt( bs[0], 10 ); | ||||
| 				bgHeight = parseInt( bs[1], 10 ); | ||||
| 			} | ||||
|  | ||||
|  | ||||
| 			var slideWidth = dom.wrapper.offsetWidth; | ||||
| 			var horizontalSlideCount = horizontalSlides.length; | ||||
| 			var horizontalOffset = -( bgWidth - slideWidth ) / ( horizontalSlideCount-1 ) * h; | ||||
|  | ||||
| 			var slideHeight = dom.wrapper.offsetHeight; | ||||
| 			var verticalSlideCount = currentVerticalSlides.length; | ||||
| 			var verticalOffset = verticalSlideCount > 0 ? -( bgHeight - slideHeight ) / ( verticalSlideCount-1 ) * v : 0; | ||||
|  | ||||
| 			dom.wrapper.style.backgroundPosition = horizontalOffset + 'px ' + verticalOffset + 'px'; | ||||
| 		} | ||||
|  | ||||
| 		//////////////////////////////////// | ||||
| 		// Show fragment, if specified | ||||
| 		if( typeof f !== 'undefined' ) { | ||||
| @@ -1583,6 +1558,7 @@ var Reveal = (function(){ | ||||
| 		updateControls(); | ||||
| 		updateProgress(); | ||||
| 		updateBackground(); | ||||
| 		updateParallax(); | ||||
|  | ||||
| 		// Update the URL hash | ||||
| 		writeURL(); | ||||
| @@ -1905,6 +1881,45 @@ var Reveal = (function(){ | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Updates the position of the parallax background based | ||||
| 	 * on the current slide index. | ||||
| 	 */ | ||||
| 	function updateParallax() { | ||||
|  | ||||
| 		// Animate parallax background | ||||
| 		if( dom.wrapper.getAttribute( 'data-parallax-background' ) || config.parallaxBackgroundImage ) { | ||||
|  | ||||
| 			var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ); | ||||
| 			var currentHorizontalSlide = horizontalSlides[ indexh ], | ||||
| 				currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' ); | ||||
|  | ||||
| 			var backgroundSize = dom.wrapper.style.backgroundSize.split( ' ' ), | ||||
| 				backgroundWidth, backgroundHeight; | ||||
|  | ||||
| 			if( backgroundSize.length === 1 ) { | ||||
| 				backgroundWidth = backgroundHeight = parseInt( backgroundSize[0], 10 ); | ||||
| 			} | ||||
| 			else { | ||||
| 				backgroundWidth = parseInt( backgroundSize[0], 10 ); | ||||
| 				backgroundHeight = parseInt( backgroundSize[1], 10 ); | ||||
| 			} | ||||
|  | ||||
|  | ||||
| 			var slideWidth = dom.wrapper.offsetWidth; | ||||
| 			var horizontalSlideCount = horizontalSlides.length; | ||||
| 			var horizontalOffset = -( backgroundWidth - slideWidth ) / ( horizontalSlideCount-1 ) * indexh; | ||||
|  | ||||
| 			var slideHeight = dom.wrapper.offsetHeight; | ||||
| 			var verticalSlideCount = currentVerticalSlides.length; | ||||
| 			var verticalOffset = verticalSlideCount > 0 ? -( backgroundHeight - slideHeight ) / ( verticalSlideCount-1 ) * indexv : 0; | ||||
|  | ||||
| 			dom.wrapper.style.backgroundPosition = horizontalOffset + 'px ' + verticalOffset + 'px'; | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Determine what available routes there are for navigation. | ||||
| 	 * | ||||
|   | ||||
							
								
								
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user