merge dom setup refactor #544

This commit is contained in:
Hakim El Hattab committed 2013-08-11 16:47:56 -04:00
commit 41edd914ad
2 files changed
+30 -33

No files matched your search

+28 -31
View File
@@ -222,49 +222,26 @@ var Reveal = (function(){
dom.slides.classList.add( 'no-transition' );
// Background element
if( !document.querySelector( '.reveal .backgrounds' ) ) {
dom.background = document.createElement( 'div' );
dom.background.classList.add( 'backgrounds' );
dom.wrapper.appendChild( dom.background );
}
dom.background = createSingletonNode( dom.wrapper, 'div', 'backgrounds', null );
// Progress bar
if( !dom.wrapper.querySelector( '.progress' ) ) {
var progressElement = document.createElement( 'div' );
progressElement.classList.add( 'progress' );
progressElement.innerHTML = '<span></span>';
dom.wrapper.appendChild( progressElement );
}
dom.progress = createSingletonNode( dom.wrapper, 'div', 'progress', '<span></span>' );
dom.progressbar = dom.progress.querySelector( 'span' );
// Arrow controls
if( !dom.wrapper.querySelector( '.controls' ) ) {
var controlsElement = document.createElement( 'aside' );
controlsElement.classList.add( 'controls' );
controlsElement.innerHTML = '<div class="navigate-left"></div>' +
createSingletonNode( dom.wrapper, 'aside', 'controls',
'<div class="navigate-left"></div>' +
'<div class="navigate-right"></div>' +
'<div class="navigate-up"></div>' +
'<div class="navigate-down"></div>';
dom.wrapper.appendChild( controlsElement );
}
'<div class="navigate-down"></div>' );
// State background element [DEPRECATED]
if( !dom.wrapper.querySelector( '.state-background' ) ) {
var stateBackgroundElement = document.createElement( 'div' );
stateBackgroundElement.classList.add( 'state-background' );
dom.wrapper.appendChild( stateBackgroundElement );
}
createSingletonNode( dom.wrapper, 'div', 'state-background', null );
// Overlay graphic which is displayed during the paused mode
if( !dom.wrapper.querySelector( '.pause-overlay' ) ) {
var pausedElement = document.createElement( 'div' );
pausedElement.classList.add( 'pause-overlay' );
dom.wrapper.appendChild( pausedElement );
}
createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
// Cache references to elements
dom.progress = document.querySelector( '.reveal .progress' );
dom.progressbar = document.querySelector( '.reveal .progress span' );
if ( config.controls ) {
dom.controls = document.querySelector( '.reveal .controls' );
@@ -279,6 +256,26 @@ var Reveal = (function(){
}
/**
* Creates an HTML element and returns a reference to it.
* If the element already exists the existing instance will
* be returned.
*/
function createSingletonNode( container, tagname, classname, innerHTML ) {
var node = container.querySelector( '.' + classname );
if( !node ) {
node = document.createElement( tagname );
node.classList.add( classname );
if( innerHTML !== null ) {
node.innerHTML = innerHTML;
}
container.appendChild( node );
}
return node;
}
/**
* Creates the slide background elements and appends them
* to the background container. One element is created per
+2 -2
View File
@@ -1,8 +1,8 @@
/*!
* reveal.js 2.5.0 (2013-08-11, 16:31)
* reveal.js 2.5.0 (2013-08-11, 16:46)
* http://lab.hakim.se/reveal-js
* MIT licensed
*
* Copyright (C) 2013 Hakim El Hattab, http://hakim.se
*/
var Reveal=function(){"use strict";function e(e){return t(),Dt||Pt?(window.addEventListener("load",S,!1),d(Yt,e),o(),a(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){Pt="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Dt="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,Nt=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function n(){if(Wt.theme=document.querySelector("#theme"),Wt.wrapper=document.querySelector(".reveal"),Wt.slides=document.querySelector(".reveal .slides"),Wt.slides.classList.add("no-transition"),document.querySelector(".reveal .backgrounds")||(Wt.background=document.createElement("div"),Wt.background.classList.add("backgrounds"),Wt.wrapper.appendChild(Wt.background)),!Wt.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",Wt.wrapper.appendChild(e)}if(!Wt.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>',Wt.wrapper.appendChild(t)}if(!Wt.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),Wt.wrapper.appendChild(n)}if(!Wt.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),Wt.wrapper.appendChild(r)}Wt.progress=document.querySelector(".reveal .progress"),Wt.progressbar=document.querySelector(".reveal .progress span"),Yt.controls&&(Wt.controls=document.querySelector(".reveal .controls"),Wt.controlsLeft=u(document.querySelectorAll(".navigate-left")),Wt.controlsRight=u(document.querySelectorAll(".navigate-right")),Wt.controlsUp=u(document.querySelectorAll(".navigate-up")),Wt.controlsDown=u(document.querySelectorAll(".navigate-down")),Wt.controlsPrev=u(document.querySelectorAll(".navigate-prev")),Wt.controlsNext=u(document.querySelectorAll(".navigate-next")))}function r(){function e(e,t){var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition")},r=document.createElement("div");return r.className="slide-background",n.background&&(/^(http|file|\/\/)/gi.test(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.backgroundImage&&(r.style.backgroundImage='url("'+n.backgroundImage+'")'),n.backgroundColor&&(r.style.backgroundColor=n.backgroundColor),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),n.backgroundTransition&&r.setAttribute("data-background-transition",n.backgroundTransition),t.appendChild(r),r}p()&&document.body.classList.add("print-pdf"),Wt.background.innerHTML="",Wt.background.classList.add("no-transition"),u(document.querySelectorAll(Rt)).forEach(function(t){var n;n=p()?e(t,t):e(t,Wt.background),u(t.querySelectorAll("section")).forEach(function(t){p()?e(t,t):e(t,n)})})}function o(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",m,!1),window.addEventListener("orientationchange",m,!1))}function a(){function e(){n.length&&head.js.apply(null,n),i()}for(var t=[],n=[],r=0,o=Yt.dependencies.length;o>r;r++){var a=Yt.dependencies[r];(!a.condition||a.condition())&&(a.async?n.push(a.src):t.push(a.src),"function"==typeof a.callback&&head.ready(a.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],a.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function i(){n(),s(),V(),setTimeout(function(){Wt.slides.classList.remove("no-transition"),g("ready",{indexh:qt,indexv:xt,currentSlide:Mt})},1)}function s(e){if(Wt.wrapper.classList.remove(Yt.transition),"object"==typeof e&&d(Yt,e),Pt===!1&&(Yt.transition="linear"),Wt.wrapper.classList.add(Yt.transition),Wt.wrapper.setAttribute("data-transition-speed",Yt.transitionSpeed),Wt.wrapper.setAttribute("data-background-transition",Yt.backgroundTransition),Wt.controls&&(Wt.controls.style.display=Yt.controls&&Wt.controls?"block":"none"),Wt.progress&&(Wt.progress.style.display=Yt.progress&&Wt.progress?"block":"none"),Yt.rtl?Wt.wrapper.classList.add("rtl"):Wt.wrapper.classList.remove("rtl"),Yt.center?Wt.wraLine truncated
var Reveal=function(){"use strict";function e(e){return t(),Nt||Dt?(window.addEventListener("load",A,!1),u(zt,e),a(),i(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){Dt="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,Nt="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,Ct=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function n(){Ut.theme=document.querySelector("#theme"),Ut.wrapper=document.querySelector(".reveal"),Ut.slides=document.querySelector(".reveal .slides"),Ut.slides.classList.add("no-transition"),Ut.background=r(Ut.wrapper,"div","backgrounds",null),Ut.progress=r(Ut.wrapper,"div","progress","<span></span>"),Ut.progressbar=Ut.progress.querySelector("span"),r(Ut.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),r(Ut.wrapper,"div","state-background",null),r(Ut.wrapper,"div","pause-overlay",null),zt.controls&&(Ut.controls=document.querySelector(".reveal .controls"),Ut.controlsLeft=f(document.querySelectorAll(".navigate-left")),Ut.controlsRight=f(document.querySelectorAll(".navigate-right")),Ut.controlsUp=f(document.querySelectorAll(".navigate-up")),Ut.controlsDown=f(document.querySelectorAll(".navigate-down")),Ut.controlsPrev=f(document.querySelectorAll(".navigate-prev")),Ut.controlsNext=f(document.querySelectorAll(".navigate-next")))}function r(e,t,n,r){var o=e.querySelector("."+n);return o||(o=document.createElement(t),o.classList.add(n),null!==r&&(o.innerHTML=r),e.appendChild(o)),o}function o(){function e(e,t){var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition")},r=document.createElement("div");return r.className="slide-background",n.background&&(/^(http|file|\/\/)/gi.test(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.backgroundImage&&(r.style.backgroundImage='url("'+n.backgroundImage+'")'),n.backgroundColor&&(r.style.backgroundColor=n.backgroundColor),n.backgroundRepeat&&(r.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(r.style.backgroundPosition=n.backgroundPosition),n.backgroundTransition&&r.setAttribute("data-background-transition",n.backgroundTransition),t.appendChild(r),r}m()&&document.body.classList.add("print-pdf"),Ut.background.innerHTML="",Ut.background.classList.add("no-transition"),f(document.querySelectorAll(It)).forEach(function(t){var n;n=m()?e(t,t):e(t,Ut.background),f(t.querySelectorAll("section")).forEach(function(t){m()?e(t,t):e(t,n)})})}function a(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",g,!1),window.addEventListener("orientationchange",g,!1))}function i(){function e(){n.length&&head.js.apply(null,n),s()}for(var t=[],n=[],r=0,o=zt.dependencies.length;o>r;r++){var a=zt.dependencies[r];(!a.condition||a.condition())&&(a.async?n.push(a.src):t.push(a.src),"function"==typeof a.callback&&head.ready(a.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],a.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function s(){n(),c(),Z(),setTimeout(function(){Ut.slides.classList.remove("no-transition"),h("ready",{indexh:xt,indexv:Tt,currentSlide:Pt})},1)}function c(e){if(Ut.wrapper.classList.remove(zt.transition),"object"==typeof e&&u(zt,e),Dt===!1&&(zt.transition="linear"),Ut.wrapper.classList.add(zt.transition),Ut.wrapper.setAttribute("data-transition-speed",zt.transitionSpeed),Ut.wrapper.setAttribute("data-background-transition",zt.backgroundTransition),Ut.controls&&(Ut.controls.style.display=zt.controls&&Ut.controls?"block":"none"),Ut.progress&&(Ut.progress.style.display=zt.progress&&Ut.progress?"block":"none"),zt.rtl?Ut.wrapper.classList.add("rtl"):Ut.wrapper.classList.remove("rtl"),zt.center?Ut.wrapper.classList.add("center"):Ut.wrapper.classList.remove("center"),zt.mouseWheel?(document.addEventListener("DOMMouseScroll",mt,!1),document.addEventListener("mousewheel",mt,!1)):(document.removeEventListener("DOMMouseScroll",mt,!1),document.removeEventListener("mousewheel",mt,!1)),zt.rollingLinks?y():b(),zt.previewLinks?w():(L(),w("[data-preview-link]")),zt.theme&&Ut.theme){var t=Ut.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];zt.theme!==rLine truncated