support for optional background property overrides (#453)

This commit is contained in:
Hakim El Hattab committed 2013-06-04 19:58:50 +02:00
1 parent bfadfcc7ce
commit c11e8f624f
3 files changed
+20 -8

No files matched your search

+16 -5
View File
@@ -258,19 +258,30 @@ var Reveal = (function(){
// given slide // given slide
function _createBackground( slide, container ) { function _createBackground( slide, container ) {
var background = slide.getAttribute( 'data-background' ); var data = {
background: slide.getAttribute( 'data-background' ),
backgroundSize: slide.getAttribute( 'data-background-size' ),
backgroundRepeat: slide.getAttribute( 'data-background-repeat' ),
backgroundPosition: slide.getAttribute( 'data-background-position' )
};
var element = document.createElement( 'div' ); var element = document.createElement( 'div' );
if( background ) { if( data.background ) {
// Auto-wrap image urls in url(...) // Auto-wrap image urls in url(...)
if( /\.(png|jpg|jpeg|gif|bmp|)$/gi.test( background ) ) { if( /\.(png|jpg|jpeg|gif|bmp|)$/gi.test( data.background ) ) {
element.style.backgroundImage = 'url('+ background +')'; element.style.backgroundImage = 'url('+ data.background +')';
} }
else { else {
element.style.background = background; element.style.background = data.background;
} }
} }
// Additional and optional background properties
if( data.backgroundSize ) element.style.backgroundSize = data.backgroundSize;
if( data.backgroundRepeat ) element.style.backgroundRepeat = data.backgroundRepeat;
if( data.backgroundPosition ) element.style.backgroundPosition = data.backgroundPosition;
container.appendChild( element ); container.appendChild( element );
return element; return element;
+2 -2
View File
@@ -1,8 +1,8 @@
/*! /*!
* reveal.js 2.5.0 (2013-06-04, 19:50) * reveal.js 2.5.0 (2013-06-04, 19:55)
* http://lab.hakim.se/reveal-js * http://lab.hakim.se/reveal-js
* MIT licensed * MIT licensed
* *
* Copyright (C) 2013 Hakim El Hattab, http://hakim.se * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
*/ */
var Reveal=function(){"use strict";function e(e){return Nt||Pt?(window.addEventListener("load",g,!1),l(St,e),r(),o(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(Mt.theme=document.querySelector("#theme"),Mt.wrapper=document.querySelector(".reveal"),Mt.slides=document.querySelector(".reveal .slides"),document.querySelector(".reveal .background")||(Mt.background=document.createElement("div"),Mt.background.classList.add("background"),Mt.wrapper.appendChild(Mt.background)),!Mt.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",Mt.wrapper.appendChild(e)}if(!Mt.wrapper.querySelector(".controls")){var t=document.createElement("aside");t.classList.add("controls"),t.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>',Mt.wrapper.appendChild(t)}if(!Mt.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),Mt.wrapper.appendChild(n)}if(!Mt.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),Mt.wrapper.appendChild(r)}Mt.progress=document.querySelector(".reveal .progress"),Mt.progressbar=document.querySelector(".reveal .progress span"),St.controls&&(Mt.controls=document.querySelector(".reveal .controls"),Mt.controlsLeft=d(document.querySelectorAll(".navigate-left")),Mt.controlsRight=d(document.querySelectorAll(".navigate-right")),Mt.controlsUp=d(document.querySelectorAll(".navigate-up")),Mt.controlsDown=d(document.querySelectorAll(".navigate-down")),Mt.controlsPrev=d(document.querySelectorAll(".navigate-prev")),Mt.controlsNext=d(document.querySelectorAll(".navigate-next")))}function n(){function e(e,t){var n=e.getAttribute("data-background"),r=document.createElement("div");return n&&(/\.(png|jpg|jpeg|gif|bmp|)$/gi.test(n)?r.style.backgroundImage="url("+n+")":r.style.background=n),t.appendChild(r),r}Mt.background.innerHTML="",Mt.background.classList.add("no-transition"),d(document.querySelectorAll(Lt)).forEach(function(t){var n=e(t,Mt.background);d(t.querySelectorAll("section")).forEach(function(t){e(t,n)})})}function r(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",f,!1),window.addEventListener("orientationchange",f,!1))}function o(){function e(){n.length&&head.js.apply(null,n),a()}for(var t=[],n=[],r=0,o=St.dependencies.length;o>r;r++){var s=St.dependencies[r];(!s.condition||s.condition())&&(s.async?n.push(s.src):t.push(s.src),"function"==typeof s.callback&&head.ready(s.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],s.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function a(){t(),s(),W(),setTimeout(function(){v("ready",{indexh:kt,indexv:qt,currentSlide:yt})},1)}function s(e){if(Mt.wrapper.classList.remove(St.transition),"object"==typeof e&&l(St,e),Pt===!1&&(St.transition="linear"),Mt.wrapper.classList.add(St.transition),Mt.wrapper.setAttribute("data-transition-speed",St.transitionSpeed),Mt.controls&&(Mt.controls.style.display=St.controls&&Mt.controls?"block":"none"),Mt.progress&&(Mt.progress.style.display=St.progress&&Mt.progress?"block":"none"),St.rtl?Mt.wrapper.classList.add("rtl"):Mt.wrapper.classList.remove("rtl"),St.center?Mt.wrapper.classList.add("center"):Mt.wrapper.classList.remove("center"),St.mouseWheel?(document.addEventListener("DOMMouseScroll",st,!1),document.addEventListener("mousewheel",st,!1)):(document.removeEventListener("DOMMouseScroll",st,!1),document.removeEventListener("mousewheel",st,!1)),St.rollingLinks?p():m(),St.theme&&Mt.theme){var t=Mt.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];St.theme!==r&&(t=t.replace(n,St.theme),Mt.theme.setAttribute("href",t))}N()}function i(){Xt=!0,window.addEventListener("hashchange",pt,!1),window.addEventListener("resize",mt,!1),St.touch&&(Mt.wrapper.addEventListener("touchstart",et,!1),Mt.wrapper.addEventListener("touchmove",tt,!1),Mt.wrapper.addEventListener("touchend",nt,!1),window.navigator.msPointerEnabled&&(Mt.wrapper.addEventListener("MSPointerDown",rt,!1),Mt.wrapper.addEventListener("MSPointerMove",ot,!1),Mt.wrapper.addEventListener("MSPointerUp",at,!1))),St.keyboard&&document.addEventListener("keydown",J,!1),St.progress&&Mt.progress&&Mt.progress.addEventListener("click",it,!1),St.controls&&Mt.controls&&["touchstart","click"].forEach(function(e){Mt.controlsLeft.forEach(function(t){t.addEventListener(e,ct,!1)}),Mt.controlsRight.forEach(function(t){t.addEventListener(e,lt,!1)}),Mt.controlsUp.forEach(function(t){t.addEventListener(e,dt,!1)}),Mt.controlsDown.forEach(function(t){t.addEventListener(e,ut,!1)}),Mt.controlsPrev.forEach(function(t){t.addEventListener(e,ft,!1)}),Mt.controlsNext.forEach(function(t){t.addEventListener(e,vt,!1)})})}function c(){Xt=!1,document.removeEventListener("keydown",J,!1),window.removeEventListener("hasLine truncated var Reveal=function(){"use strict";function e(e){return Nt||Pt?(window.addEventListener("load",g,!1),l(St,e),r(),o(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(Mt.theme=document.querySelector("#theme"),Mt.wrapper=document.querySelector(".reveal"),Mt.slides=document.querySelector(".reveal .slides"),document.querySelector(".reveal .background")||(Mt.background=document.createElement("div"),Mt.background.classList.add("background"),Mt.wrapper.appendChild(Mt.background)),!Mt.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",Mt.wrapper.appendChild(e)}if(!Mt.wrapper.querySelector(".controls")){var t=document.createElement("aside");t.classList.add("controls"),t.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>',Mt.wrapper.appendChild(t)}if(!Mt.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),Mt.wrapper.appendChild(n)}if(!Mt.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),Mt.wrapper.appendChild(r)}Mt.progress=document.querySelector(".reveal .progress"),Mt.progressbar=document.querySelector(".reveal .progress span"),St.controls&&(Mt.controls=document.querySelector(".reveal .controls"),Mt.controlsLeft=d(document.querySelectorAll(".navigate-left")),Mt.controlsRight=d(document.querySelectorAll(".navigate-right")),Mt.controlsUp=d(document.querySelectorAll(".navigate-up")),Mt.controlsDown=d(document.querySelectorAll(".navigate-down")),Mt.controlsPrev=d(document.querySelectorAll(".navigate-prev")),Mt.controlsNext=d(document.querySelectorAll(".navigate-next")))}function n(){function e(e,t){var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position")},r=document.createElement("div");return n.background&&(/\.(png|jpg|jpeg|gif|bmp|)$/gi.test(n.background)?r.style.backgroundImage="url("+n.background+")":r.style.background=n.background),n.backgroundSize&&(r.style.backgroundSize=n.backgroundSize),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),t.appendChild(r),r}Mt.background.innerHTML="",Mt.background.classList.add("no-transition"),d(document.querySelectorAll(Lt)).forEach(function(t){var n=e(t,Mt.background);d(t.querySelectorAll("section")).forEach(function(t){e(t,n)})})}function r(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",f,!1),window.addEventListener("orientationchange",f,!1))}function o(){function e(){n.length&&head.js.apply(null,n),a()}for(var t=[],n=[],r=0,o=St.dependencies.length;o>r;r++){var s=St.dependencies[r];(!s.condition||s.condition())&&(s.async?n.push(s.src):t.push(s.src),"function"==typeof s.callback&&head.ready(s.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],s.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function a(){t(),s(),I(),setTimeout(function(){v("ready",{indexh:At,indexv:qt,currentSlide:yt})},1)}function s(e){if(Mt.wrapper.classList.remove(St.transition),"object"==typeof e&&l(St,e),Pt===!1&&(St.transition="linear"),Mt.wrapper.classList.add(St.transition),Mt.wrapper.setAttribute("data-transition-speed",St.transitionSpeed),Mt.controls&&(Mt.controls.style.display=St.controls&&Mt.controls?"block":"none"),Mt.progress&&(Mt.progress.style.display=St.progress&&Mt.progress?"block":"none"),St.rtl?Mt.wrapper.classList.add("rtl"):Mt.wrapper.classList.remove("rtl"),St.center?Mt.wrapper.classList.add("center"):Mt.wrapper.classList.remove("center"),St.mouseWheel?(document.addEventListener("DOMMouseScroll",st,!1),document.addEventListener("mousewheel",st,!1)):(document.removeEventListener("DOMMouseScroll",st,!1),document.removeEventListener("mousewheel",st,!1)),St.rollingLinks?p():m(),St.theme&&Mt.theme){var t=Mt.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];St.theme!==r&&(t=t.replace(n,St.theme),Mt.theme.setAttribute("href",t))}N()}function i(){zt=!0,window.addEventListener("hashchange",pt,!1),window.addEventListener("resize",mt,!1),St.touch&&(Mt.wrapper.addEventListener("touchstart",et,!1),Mt.wrapper.addEventListener("touchmove",tt,!1),Mt.wrapper.addEventListener("touchend",nt,!1),window.navigator.msPointerEnabled&&(Mt.wrapper.addEventListener("MSPointerDown",rt,!1),Mt.wrapper.addEventListener("MSPointerMove",ot,!1),Mt.wrapper.addEventListener("MSPointerUp",at,!1))),St.keyboard&&document.addEventListener("keydown",J,!1),St.progress&&Mt.progress&&Mt.progress.addEventListener("click",it,!1),St.controls&&Mt.controls&&["touchstart","click"].forEach(function(e){Mt.controlsLeft.forEach(function(t){t.addEventListener(e,ct,!1)Line truncated
+2 -1
View File
@@ -54,8 +54,9 @@
<h2>Background image</h2> <h2>Background image</h2>
</section> </section>
<section data-background="assets/image2.png"> <section data-background="assets/image2.png" data-background-size="100px" data-background-repeat="repeat">
<h2>Background image</h2> <h2>Background image</h2>
<code>data-background-size="100px" data-background-repeat="repeat"</code>
</section> </section>
</div> </div>