reveal-js-base-theme/js/reveal.min.js

96 lines
16 KiB
JavaScript
Raw Normal View History

2012-08-07 07:27:22 +02:00
/*!
* reveal.js 2.2 r44
2012-08-07 07:27:22 +02:00
* http://lab.hakim.se/reveal-js
* MIT licensed
*
2012-08-07 07:27:22 +02:00
* Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
var Reveal=(function(){var ar=".reveal .slides section",m=".reveal .slides>section",b=".reveal .slides>section.present>section",W={controls:true,progress:true,history:false,keyboard:true,overview:true,center:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:null,transition:"default",dependencies:[]},ae=W.autoSlide,n=0,e=0,A,J,at=[],f={},Z="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,p="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,B=0,l=0,F=0,aj={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:80};
function j(au){if((!p&&!Z)){document.body.setAttribute("class","no-transforms");return;}v(W,au);d();ab();}function S(){f.theme=document.querySelector("#theme");
f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&W.progress){var ax=document.createElement("div");ax.classList.add("progress");
ax.innerHTML="<span></span>";f.wrapper.appendChild(ax);}if(!f.wrapper.querySelector(".controls")&&W.controls){var aw=document.createElement("aside");aw.classList.add("controls");
aw.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>';f.wrapper.appendChild(aw);
}if(!f.wrapper.querySelector(".state-background")){var av=document.createElement("div");av.classList.add("state-background");f.wrapper.appendChild(av);
}if(!f.wrapper.querySelector(".pause-overlay")){var au=document.createElement("div");au.classList.add("pause-overlay");f.wrapper.appendChild(au);}f.progress=document.querySelector(".reveal .progress");
f.progressbar=document.querySelector(".reveal .progress span");if(W.controls){f.controls=document.querySelector(".reveal .controls");f.controlsLeft=I(document.querySelectorAll(".navigate-left"));
f.controlsRight=I(document.querySelectorAll(".navigate-right"));f.controlsUp=I(document.querySelectorAll(".navigate-up"));f.controlsDown=I(document.querySelectorAll(".navigate-down"));
f.controlsPrev=I(document.querySelectorAll(".navigate-prev"));f.controlsNext=I(document.querySelectorAll(".navigate-next"));}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll";
document.body.style.height="120%";window.addEventListener("load",ak,false);window.addEventListener("orientationchange",ak,false);}}function ab(){var av=[],az=[];
for(var aw=0,au=W.dependencies.length;aw<au;aw++){var ax=W.dependencies[aw];if(!ax.condition||ax.condition()){if(ax.async){az.push(ax.src);}else{av.push(ax.src);
}if(typeof ax.callback==="function"){head.ready(ax.src.match(/([\w\d_\-]*)\.?[^\\\/]*$/i)[0],ax.callback);}}}function ay(){if(az.length){head.js.apply(null,az);
}K();}if(av.length){head.ready(ay);head.js.apply(null,av);}else{ay();}}function K(){S();G();N();T();M();R();setTimeout(function(){t("ready",{indexh:n,indexv:e,currentSlide:J});
},1);}function N(){if(Z===false){W.transition="linear";}if(W.controls&&f.controls){f.controls.style.display="block";}if(W.progress&&f.progress){f.progress.style.display="block";
}if(W.transition!=="default"){f.wrapper.classList.add(W.transition);}if(W.center){f.wrapper.classList.add("center");}if(W.mouseWheel){document.addEventListener("DOMMouseScroll",q,false);
document.addEventListener("mousewheel",q,false);}if(W.rollingLinks){Q();}if(W.theme&&f.theme){var aw=f.theme.getAttribute("href");var au=/[^\/]*?(?=\.css)/;
var av=aw.match(au)[0];if(W.theme!==av){aw=aw.replace(au,W.theme);f.theme.setAttribute("href",aw);}}}function G(){document.addEventListener("touchstart",C,false);
document.addEventListener("touchmove",am,false);document.addEventListener("touchend",ac,false);window.addEventListener("hashchange",y,false);window.addEventListener("resize",g,false);
if(W.keyboard){document.addEventListener("keydown",ao,false);}if(W.progress&&f.progress){f.progress.addEventListener("click",s(ap),false);}if(W.controls&&f.controls){f.controlsLeft.forEach(function(au){au.addEventListener("click",s(D),false);
});f.controlsRight.forEach(function(au){au.addEventListener("click",s(k),false);});f.controlsUp.forEach(function(au){au.addEventListener("click",s(w),false);
});f.controlsDown.forEach(function(au){au.addEventListener("click",s(H),false);});f.controlsPrev.forEach(function(au){au.addEventListener("click",s(af),false);
});f.controlsNext.forEach(function(au){au.addEventListener("click",s(z),false);});}}function aa(){document.removeEventListener("keydown",ao,false);document.removeEventListener("touchstart",C,false);
document.removeEventListener("touchmove",am,false);document.removeEventListener("touchend",ac,false);window.removeEventListener("hashchange",y,false);window.removeEventListener("resize",g,false);
if(W.progress&&f.progress){f.progress.removeEventListener("click",s(ap),false);}if(W.controls&&f.controls){f.controlsLeft.forEach(function(au){au.removeEventListener("click",s(D),false);
});f.controlsRight.forEach(function(au){au.removeEventListener("click",s(k),false);});f.controlsUp.forEach(function(au){au.removeEventListener("click",s(w),false);
});f.controlsDown.forEach(function(au){au.removeEventListener("click",s(H),false);});f.controlsPrev.forEach(function(au){au.removeEventListener("click",s(af),false);
});f.controlsNext.forEach(function(au){au.removeEventListener("click",s(z),false);});}}function v(av,au){for(var aw in au){av[aw]=au[aw];}}function I(au){return Array.prototype.slice.call(au);
}function ah(au,aw,av){au.forEach(function(ax){ax[aw].apply(ax,av);});}function X(aw,au){var ax=aw.x-au.x,av=aw.y-au.y;return Math.sqrt(ax*ax+av*av);}function s(au){return function(av){av.preventDefault();
au.call(null,av);};}function ak(){setTimeout(function(){window.scrollTo(0,1);},0);}function t(av,au){var aw=document.createEvent("HTMLEvents",1,2);aw.initEvent(av,true,true);
v(aw,au);f.wrapper.dispatchEvent(aw);}function Q(){if(Z&&!("msPerspective" in document.body.style)){var av=document.querySelectorAll(ar+" a:not(.image)");
for(var aw=0,au=av.length;aw<au;aw++){var ax=av[aw];if(ax.textContent&&!ax.querySelector("img")&&(!ax.className||!ax.classList.contains(ax,"roll"))){ax.classList.add("roll");
ax.innerHTML='<span data-title="'+ax.text+'">'+ax.innerHTML+"</span>";}}}}function T(){if(W.center){var ax=I(document.querySelectorAll(ar));var ay=-f.wrapper.offsetHeight/2;
for(var aw=0,av=ax.length;aw<av;aw++){var au=ax[aw];if(au.style.display==="none"){continue;}if(au.classList.contains("stack")){au.style.top=0;}else{au.style.top=Math.max(-(au.offsetHeight/2)-20,ay)+"px";
}}}}function V(au,av){if(au){au.setAttribute("data-previous-indexv",av||0);}}function Y(au){if(au&&au.classList.contains("stack")){return parseInt(au.getAttribute("data-previous-indexv")||0);
}return 0;}function L(){if(W.overview){f.wrapper.classList.add("overview");var av=document.querySelectorAll(m);for(var aA=0,ay=av.length;aA<ay;aA++){var ax=av[aA],aE="translateZ(-2500px) translate("+((aA-n)*105)+"%, 0%)";
ax.setAttribute("data-index-h",aA);ax.style.display="block";ax.style.WebkitTransform=aE;ax.style.MozTransform=aE;ax.style.msTransform=aE;ax.style.OTransform=aE;
ax.style.transform=aE;if(ax.classList.contains("stack")){var aD=ax.querySelectorAll("section");for(var az=0,aw=aD.length;az<aw;az++){var au=aA===n?e:Y(ax);
var aC=aD[az],aB="translate(0%, "+((az-au)*105)+"%)";aC.setAttribute("data-index-h",aA);aC.setAttribute("data-index-v",az);aC.style.display="block";aC.style.WebkitTransform=aB;
aC.style.MozTransform=aB;aC.style.msTransform=aB;aC.style.OTransform=aB;aC.style.transform=aB;aC.addEventListener("click",E,true);}}else{ax.addEventListener("click",E,true);
}}T();}}function al(){if(W.overview){f.wrapper.classList.remove("overview");var ax=I(document.querySelectorAll(ar));for(var aw=0,au=ax.length;aw<au;aw++){var av=ax[aw];
av.style.WebkitTransform="";av.style.MozTransform="";av.style.msTransform="";av.style.OTransform="";av.style.transform="";av.removeEventListener("click",E);
}a(n,e);}}function ad(au){if(typeof au==="boolean"){au?L():al();}else{O()?al():L();}}function O(){return f.wrapper.classList.contains("overview");}function ai(){var au=document.body;
var av=au.requestFullScreen||au.webkitRequestFullScreen||au.mozRequestFullScreen||au.msRequestFullScreen;if(av){av.apply(au);}}function c(){f.wrapper.classList.add("paused");
}function r(){f.wrapper.classList.remove("paused");}function ag(){if(an()){r();}else{c();}}function an(){return f.wrapper.classList.contains("paused");
}function a(aA,aE){A=J;var au=document.querySelectorAll(m);if(aE===undefined){aE=Y(au[aA]);}if(A&&A.parentNode.classList.contains("stack")){V(A.parentNode,e);
}var ax=at.concat();at.length=0;var aD=n,aw=e;n=aq(m,aA===undefined?n:aA);e=aq(b,aE===undefined?e:aE);T();stateLoop:for(var ay=0,aB=at.length;ay<aB;ay++){for(var av=0;
av<ax.length;av++){if(ax[av]===at[ay]){ax.splice(av,1);continue stateLoop;}}document.documentElement.classList.add(at[ay]);t(at[ay]);}while(ax.length){document.documentElement.classList.remove(ax.pop());
}if(O()){L();}clearTimeout(F);F=setTimeout(i,1500);var aC=au[n],az=aC.querySelectorAll("section");J=az[e]||aC;if(n!==aD||e!==aw){t("slidechanged",{indexh:n,indexv:e,previousSlide:A,currentSlide:J});
}else{A=null;}if(A){A.classList.remove("present");}u();o();}function aq(ax,aC){var av=I(document.querySelectorAll(ax)),aB=av.length;if(aB){if(W.loop){aC%=aB;
if(aC<0){aC=aB+aC;}}aC=Math.max(Math.min(aC,aB-1),0);for(var az=0;az<aB;az++){var aA=av[az];if(O()===false){var au=Math.abs((aC-az)%(aB-3))||0;aA.style.display=au>3?"none":"block";
}av[az].classList.remove("past");av[az].classList.remove("present");av[az].classList.remove("future");if(az<aC){av[az].classList.add("past");}else{if(az>aC){av[az].classList.add("future");
}}if(aA.querySelector("section")){av[az].classList.add("stack");}}av[aC].classList.add("present");var aw=av[aC].getAttribute("data-state");if(aw){at=at.concat(aw.split(" "));
}var ay=av[aC].getAttribute("data-autoslide");if(ay){ae=parseInt(ay);}else{ae=W.autoSlide;}}else{aC=0;}return aC;}function o(){if(W.progress&&f.progress){var aw=I(document.querySelectorAll(m));
var av=document.querySelectorAll(ar+":not(.stack)").length;var au=0;mainLoop:for(var ay=0;ay<aw.length;ay++){var az=aw[ay];var aA=I(az.querySelectorAll("section"));
for(var ax=0;ax<aA.length;ax++){if(aA[ax].classList.contains("present")){break mainLoop;}au++;}if(az.classList.contains("present")){break;}if(az.classList.contains("stack")===false){au++;
}}f.progressbar.style.width=(au/(av-1))*window.innerWidth+"px";}}function u(){if(W.controls&&f.controls){var au=h();f.controlsLeft.concat(f.controlsRight).concat(f.controlsUp).concat(f.controlsDown).concat(f.controlsPrev).concat(f.controlsNext).forEach(function(av){av.classList.remove("enabled");
});if(au.left){f.controlsLeft.forEach(function(av){av.classList.add("enabled");});}if(au.right){f.controlsRight.forEach(function(av){av.classList.add("enabled");
});}if(au.up){f.controlsUp.forEach(function(av){av.classList.add("enabled");});}if(au.down){f.controlsDown.forEach(function(av){av.classList.add("enabled");
});}if(au.left||au.up){f.controlsPrev.forEach(function(av){av.classList.add("enabled");});}if(au.right||au.down){f.controlsNext.forEach(function(av){av.classList.add("enabled");
});}}}function h(){var au=document.querySelectorAll(m),av=document.querySelectorAll(b);return{left:n>0,right:n<au.length-1,up:e>0,down:e<av.length-1};}function M(){var az=window.location.hash;
var ay=az.slice(2).split("/"),av=az.replace(/#|\//gi,"");if(isNaN(parseInt(ay[0],10))&&av.length){var aw=document.querySelector("#"+av);if(aw){var aA=Reveal.getIndices(aw);
a(aA.h,aA.v);}else{a(n,e);}}else{var ax=parseInt(ay[0],10)||0,au=parseInt(ay[1],10)||0;a(ax,au);}}function i(){if(W.history){var au="/";if(J&&typeof J.getAttribute("id")==="string"){au="/"+J.getAttribute("id");
}else{if(n>0||e>0){au+=n;}if(e>0){au+="/"+e;}}window.location.hash=au;}}function P(au){var ay=n,aw=e;if(au){var az=!!au.parentNode.nodeName.match(/section/gi);
var ax=az?au.parentNode:au;var av=I(document.querySelectorAll(m));ay=Math.max(av.indexOf(ax),0);if(az){aw=Math.max(I(au.parentNode.children).indexOf(au),0);
}}return{h:ay,v:aw};}function x(){if(document.querySelector(b+".present")){var av=document.querySelectorAll(b+".present .fragment:not(.visible)");if(av.length){av[0].classList.add("visible");
t("fragmentshown",{fragment:av[0]});return true;}}else{var au=document.querySelectorAll(m+".present .fragment:not(.visible)");if(au.length){au[0].classList.add("visible");
t("fragmentshown",{fragment:au[0]});return true;}}return false;}function U(){if(document.querySelector(b+".present")){var av=document.querySelectorAll(b+".present .fragment.visible");
if(av.length){av[av.length-1].classList.remove("visible");t("fragmenthidden",{fragment:av[av.length-1]});return true;}}else{var au=document.querySelectorAll(m+".present .fragment.visible");
if(au.length){au[au.length-1].classList.remove("visible");t("fragmenthidden",{fragment:au[au.length-1]});return true;}}return false;}function R(){clearTimeout(l);
if(ae){l=setTimeout(z,ae);}}function D(){if(h().left&&O()||U()===false){a(n-1);}}function k(){if(h().right&&O()||x()===false){a(n+1);}}function w(){if(h().up&&O()||U()===false){a(n,e-1);
}}function H(){if(h().down&&O()||x()===false){a(n,e+1);}}function af(){if(U()===false){if(h().up){w();}else{var au=document.querySelector(m+".past:nth-child("+n+")");
if(au){e=(au.querySelectorAll("section").length+1)||undefined;n--;a();}}}}function z(){if(x()===false){h().down?H():k();}R();}function ao(aw){var av=document.activeElement;
var ax=!!(document.activeElement&&(document.activeElement.type||document.activeElement.href||document.activeElement.contentEditable!=="inherit"));if(ax||aw.shiftKey||aw.altKey||aw.ctrlKey||aw.metaKey){return;
}var au=true;switch(aw.keyCode){case 80:case 33:af();break;case 78:case 34:z();break;case 72:case 37:D();break;case 76:case 39:k();break;case 75:case 38:w();
break;case 74:case 40:H();break;case 36:a(0);break;case 35:a(Number.MAX_VALUE);break;case 32:O()?al():z();break;case 13:O()?al():au=false;break;case 66:case 190:ag();
break;case 70:ai();break;default:au=false;}if(au){aw.preventDefault();}else{if(aw.keyCode===27&&Z){ad();aw.preventDefault();}}R();}function C(au){aj.startX=au.touches[0].clientX;
aj.startY=au.touches[0].clientY;aj.startCount=au.touches.length;if(au.touches.length===2&&W.overview){aj.startSpan=X({x:au.touches[1].clientX,y:au.touches[1].clientY},{x:aj.startX,y:aj.startY});
}}function am(az){if(!aj.handled){var ax=az.touches[0].clientX;var aw=az.touches[0].clientY;if(az.touches.length===2&&aj.startCount===2&&W.overview){var ay=X({x:az.touches[1].clientX,y:az.touches[1].clientY},{x:aj.startX,y:aj.startY});
if(Math.abs(aj.startSpan-ay)>aj.threshold){aj.handled=true;if(ay<aj.startSpan){L();}else{al();}}az.preventDefault();}else{if(az.touches.length===1&&aj.startCount!==2){var av=ax-aj.startX,au=aw-aj.startY;
if(av>aj.threshold&&Math.abs(av)>Math.abs(au)){aj.handled=true;D();}else{if(av<-aj.threshold&&Math.abs(av)>Math.abs(au)){aj.handled=true;k();}else{if(au>aj.threshold){aj.handled=true;
w();}else{if(au<-aj.threshold){aj.handled=true;H();}}}}az.preventDefault();}}}else{if(navigator.userAgent.match(/android/gi)){az.preventDefault();}}}function ac(au){aj.handled=false;
}function q(au){clearTimeout(B);B=setTimeout(function(){var av=au.detail||-au.wheelDelta;if(av>0){z();}else{af();}},100);}function ap(av){var au=I(document.querySelectorAll(m)).length;
var aw=Math.floor((av.clientX/f.wrapper.offsetWidth)*au);a(aw);}function y(au){M();}function g(au){T();}function E(au){if(O()){au.preventDefault();al();
a(parseInt(this.getAttribute("data-index-h")),parseInt(this.getAttribute("data-index-v")));}}return{initialize:j,slide:a,left:D,right:k,up:w,down:H,prev:af,next:z,prevFragment:U,nextFragment:x,navigateTo:a,navigateLeft:D,navigateRight:k,navigateUp:w,navigateDown:H,navigatePrev:af,navigateNext:z,toggleOverview:ad,addEventListeners:G,removeEventListeners:aa,getIndices:P,getPreviousSlide:function(){return A;
},getCurrentSlide:function(){return J;},getQueryHash:function(){var au={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(av){au[av.split("=").shift()]=av.split("=").pop();
});return au;},addEventListener:function(av,aw,au){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(av,aw,au);
}},removeEventListener:function(av,aw,au){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(av,aw,au);
}}};})();