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