reveal.min.js 13 KB

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