|
@@ -88,6 +88,12 @@ var Reveal = (function(){
|
|
|
|
|
|
|
|
|
backgroundTransition: 'default',
|
|
|
+
|
|
|
+
|
|
|
+ parallaxBackgroundImage: '',
|
|
|
+
|
|
|
+
|
|
|
+ parallaxBackgroundSize: '',
|
|
|
|
|
|
|
|
|
viewDistance: 3,
|
|
@@ -466,6 +472,25 @@ var Reveal = (function(){
|
|
|
} );
|
|
|
|
|
|
} );
|
|
|
+
|
|
|
+
|
|
|
+ var parallaxBackgroundImage = config.parallaxBackgroundImage,
|
|
|
+ parallaxBackgroundSize = config.parallaxBackgroundSize;
|
|
|
+
|
|
|
+ if (parallaxBackgroundImage) {
|
|
|
+ dom.wrapper.style.background = parallaxBackgroundImage;
|
|
|
+ dom.wrapper.style.backgroundSize = parallaxBackgroundSize;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ setTimeout( function() {
|
|
|
+ dom.wrapper.setAttribute('data-parallax-background', parallaxBackgroundImage);
|
|
|
+ dom.wrapper.setAttribute('data-parallax-background-size', parallaxBackgroundSize);
|
|
|
+ }, 1 );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1467,8 +1492,35 @@ var Reveal = (function(){
|
|
|
|
|
|
|
|
|
currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ 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 = parseInt(dom.wrapper.offsetWidth, 10);
|
|
|
+ var horizontalSlideCount = horizontalSlides.length;
|
|
|
+ var horizontalOffset = -(bgWidth - slideWidth)/(horizontalSlideCount-1) * h;
|
|
|
+
|
|
|
+ dom.wrapper.style.backgroundPositionX = horizontalOffset + 'px';
|
|
|
+
|
|
|
+
|
|
|
+ var slideHeight = parseInt(dom.wrapper.offsetHeight, 10);
|
|
|
+ var verticalSlideCount = currentVerticalSlides.length;
|
|
|
+ var verticalOffset = verticalSlideCount > 0 ? -(bgHeight - slideHeight)/(verticalSlideCount-1) * v : 0;
|
|
|
+
|
|
|
+ dom.wrapper.style.backgroundPositionY = verticalOffset + 'px';
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if( typeof f !== 'undefined' ) {
|
|
|
var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment' ) );
|