optimization, only declare background creation method once
This commit is contained in:
parent
17d8f0b77c
commit
ccbeaf4c32
2 changed files with 57 additions and 52 deletions
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
Loading…
Reference in a new issue