optimization, only declare background creation method once
This commit is contained in:
		
							
								
								
									
										111
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								js/reveal.js
									
									
									
									
									
								
							| @@ -425,9 +425,64 @@ var Reveal = (function(){ | |||||||
| 		dom.background.innerHTML = ''; | 		dom.background.innerHTML = ''; | ||||||
| 		dom.background.classList.add( 'no-transition' ); | 		dom.background.classList.add( 'no-transition' ); | ||||||
|  |  | ||||||
| 		// Helper method for creating a background element for the | 		// Iterate over all horizontal slides | ||||||
| 		// given slide | 		toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) { | ||||||
| 		function _createBackground( slide, container ) { |  | ||||||
|  | 			var backgroundStack; | ||||||
|  |  | ||||||
|  | 			if( isPrintingPDF() ) { | ||||||
|  | 				backgroundStack = createBackground( slideh, slideh ); | ||||||
|  | 			} | ||||||
|  | 			else { | ||||||
|  | 				backgroundStack = createBackground( slideh, dom.background ); | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			// Iterate over all vertical slides | ||||||
|  | 			toArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) { | ||||||
|  |  | ||||||
|  | 				if( isPrintingPDF() ) { | ||||||
|  | 					createBackground( slidev, slidev ); | ||||||
|  | 				} | ||||||
|  | 				else { | ||||||
|  | 					createBackground( slidev, backgroundStack ); | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 			} ); | ||||||
|  |  | ||||||
|  | 		} ); | ||||||
|  |  | ||||||
|  | 		// Add parallax background if specified | ||||||
|  | 		if( config.parallaxBackgroundImage ) { | ||||||
|  |  | ||||||
|  | 			dom.background.style.backgroundImage = 'url("' + config.parallaxBackgroundImage + '")'; | ||||||
|  | 			dom.background.style.backgroundSize = config.parallaxBackgroundSize; | ||||||
|  |  | ||||||
|  | 			// Make sure the below properties are set on the element - these properties are | ||||||
|  | 			// needed for proper transitions to be set on the element via CSS. To remove | ||||||
|  | 			// annoying background slide-in effect when the presentation starts, apply | ||||||
|  | 			// these properties after short time delay | ||||||
|  | 			setTimeout( function() { | ||||||
|  | 				dom.wrapper.classList.add( 'has-parallax-background' ); | ||||||
|  | 			}, 1 ); | ||||||
|  |  | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  |  | ||||||
|  | 			dom.background.style.backgroundImage = ''; | ||||||
|  | 			dom.wrapper.classList.remove( 'has-parallax-background' ); | ||||||
|  |  | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Creates a background for the given slide. | ||||||
|  | 	 * | ||||||
|  | 	 * @param {HTMLElement} slide | ||||||
|  | 	 * @param {HTMLElement} container The element that the background | ||||||
|  | 	 * should be appended to | ||||||
|  | 	 */ | ||||||
|  | 	function createBackground( slide, container ) { | ||||||
|  |  | ||||||
| 		var data = { | 		var data = { | ||||||
| 			background: slide.getAttribute( 'data-background' ), | 			background: slide.getAttribute( 'data-background' ), | ||||||
| @@ -470,56 +525,6 @@ var Reveal = (function(){ | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 		// Iterate over all horizontal slides |  | ||||||
| 		toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) { |  | ||||||
|  |  | ||||||
| 			var backgroundStack; |  | ||||||
|  |  | ||||||
| 			if( isPrintingPDF() ) { |  | ||||||
| 				backgroundStack = _createBackground( slideh, slideh ); |  | ||||||
| 			} |  | ||||||
| 			else { |  | ||||||
| 				backgroundStack = _createBackground( slideh, dom.background ); |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			// Iterate over all vertical slides |  | ||||||
| 			toArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) { |  | ||||||
|  |  | ||||||
| 				if( isPrintingPDF() ) { |  | ||||||
| 					_createBackground( slidev, slidev ); |  | ||||||
| 				} |  | ||||||
| 				else { |  | ||||||
| 					_createBackground( slidev, backgroundStack ); |  | ||||||
| 				} |  | ||||||
|  |  | ||||||
| 			} ); |  | ||||||
|  |  | ||||||
| 		} ); |  | ||||||
|  |  | ||||||
| 		// Add parallax background if specified |  | ||||||
| 		if( config.parallaxBackgroundImage ) { |  | ||||||
|  |  | ||||||
| 			dom.background.style.backgroundImage = 'url("' + config.parallaxBackgroundImage + '")'; |  | ||||||
| 			dom.background.style.backgroundSize = config.parallaxBackgroundSize; |  | ||||||
|  |  | ||||||
| 			// Make sure the below properties are set on the element - these properties are |  | ||||||
| 			// needed for proper transitions to be set on the element via CSS. To remove |  | ||||||
| 			// annoying background slide-in effect when the presentation starts, apply |  | ||||||
| 			// these properties after short time delay |  | ||||||
| 			setTimeout( function() { |  | ||||||
| 				dom.wrapper.classList.add( 'has-parallax-background' ); |  | ||||||
| 			}, 1 ); |  | ||||||
|  |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
|  |  | ||||||
| 			dom.background.style.backgroundImage = ''; |  | ||||||
| 			dom.wrapper.classList.remove( 'has-parallax-background' ); |  | ||||||
|  |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Applies the configuration settings from the config | 	 * Applies the configuration settings from the config | ||||||
| 	 * object. May be called multiple times. | 	 * object. May be called multiple times. | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user