delay client capability test until initialization phase

This commit is contained in:
Hakim El Hattab committed 2013-08-10 13:10:48 -04:00
1 parent 7b5e537157
commit 8ad81aa1a5
2 files changed
+34 -17

No files matched your search

+32 -15
View File
@@ -14,8 +14,6 @@ var Reveal = (function(){
VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section', VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
HOME_SLIDE_SELECTOR = '.reveal .slides>section:first-child', HOME_SLIDE_SELECTOR = '.reveal .slides>section:first-child',
IS_MOBILE = navigator.userAgent.match( /(iphone|ipod|android)/gi ),
// Configurations defaults, can be overridden at initialization time // Configurations defaults, can be overridden at initialization time
config = { config = {
@@ -113,19 +111,14 @@ var Reveal = (function(){
// Cached references to DOM elements // Cached references to DOM elements
dom = {}, dom = {},
// Detect support for CSS 3D transforms // Client support for CSS 3D transforms, see #checkCapabilities()
supports3DTransforms = 'WebkitPerspective' in document.body.style || supports3DTransforms,
'MozPerspective' in document.body.style ||
'msPerspective' in document.body.style ||
'OPerspective' in document.body.style ||
'perspective' in document.body.style,
// Detect support for CSS 2D transforms // Client support for CSS 2D transforms, see #checkCapabilities()
supports2DTransforms = 'WebkitTransform' in document.body.style || supports2DTransforms,
'MozTransform' in document.body.style ||
'msTransform' in document.body.style || // Client is a mobile device, see #checkCapabilities()
'OTransform' in document.body.style || isMobileDevice,
'transform' in document.body.style,
// Throttles mouse wheel navigation // Throttles mouse wheel navigation
lastMouseWheelStep = 0, lastMouseWheelStep = 0,
@@ -160,6 +153,8 @@ var Reveal = (function(){
*/ */
function initialize( options ) { function initialize( options ) {
checkCapabilities();
if( !supports2DTransforms && !supports3DTransforms ) { if( !supports2DTransforms && !supports3DTransforms ) {
document.body.setAttribute( 'class', 'no-transforms' ); document.body.setAttribute( 'class', 'no-transforms' );
@@ -182,6 +177,28 @@ var Reveal = (function(){
} }
/**
* Inspect the client to see what it's capable of, this
* should only happens once per runtime.
*/
function checkCapabilities() {
supports3DTransforms = '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;
supports2DTransforms = '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;
isMobileDevice = navigator.userAgent.match( /(iphone|ipod|android)/gi );
}
/** /**
* Finds and stores references to DOM elements which are * Finds and stores references to DOM elements which are
* required by the presentation. If a required element is * required by the presentation. If a required element is
@@ -1569,7 +1586,7 @@ var Reveal = (function(){
var threshold = 3; var threshold = 3;
// Heavily limited on weaker devices // Heavily limited on weaker devices
if( IS_MOBILE ) { if( isMobileDevice ) {
threshold = 1; threshold = 1;
} }
+2 -2
View File
@@ -1,8 +1,8 @@
/*! /*!
* reveal.js 2.5.0 (2013-08-10, 12:49) * reveal.js 2.5.0 (2013-08-10, 13:10)
* 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 Xt||Ht?(window.addEventListener("load",k,!1),l(Rt,e),r(),o(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(zt.theme=document.querySelector("#theme"),zt.wrapper=document.querySelector(".reveal"),zt.slides=document.querySelector(".reveal .slides"),document.querySelector(".reveal .backgrounds")||(zt.background=document.createElement("div"),zt.background.classList.add("backgrounds"),zt.wrapper.appendChild(zt.background)),!zt.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",zt.wrapper.appendChild(e)}if(!zt.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>',zt.wrapper.appendChild(t)}if(!zt.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),zt.wrapper.appendChild(n)}if(!zt.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),zt.wrapper.appendChild(r)}zt.progress=document.querySelector(".reveal .progress"),zt.progressbar=document.querySelector(".reveal .progress span"),Rt.controls&&(zt.controls=document.querySelector(".reveal .controls"),zt.controlsLeft=d(document.querySelectorAll(".navigate-left")),zt.controlsRight=d(document.querySelectorAll(".navigate-right")),zt.controlsUp=d(document.querySelectorAll(".navigate-up")),zt.controlsDown=d(document.querySelectorAll(".navigate-down")),zt.controlsPrev=d(document.querySelectorAll(".navigate-prev")),zt.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"),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}v()&&document.body.classList.add("print-pdf"),zt.background.innerHTML="",zt.background.classList.add("no-transition"),d(document.querySelectorAll(Pt)).forEach(function(t){var n;n=v()?e(t,t):e(t,zt.background),d(t.querySelectorAll("section")).forEach(function(t){v()?e(t,t):e(t,n)})})}function r(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",p,!1),window.addEventListener("orientationchange",p,!1))}function o(){function e(){n.length&&head.js.apply(null,n),a()}for(var t=[],n=[],r=0,o=Rt.dependencies.length;o>r;r++){var i=Rt.dependencies[r];(!i.condition||i.condition())&&(i.async?n.push(i.src):t.push(i.src),"function"==typeof i.callback&&head.ready(i.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],i.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function a(){t(),i(),$(),setTimeout(function(){m("ready",{indexh:At,indexv:qt,currentSlide:Tt})},1)}function i(e){if(zt.wrapper.classList.remove(Rt.transition),"object"==typeof e&&l(Rt,e),Ht===!1&&(Rt.transition="linear"),zt.wrapper.classList.add(Rt.transition),zt.wrapper.setAttribute("data-transition-speed",Rt.transitionSpeed),zt.wrapper.setAttribute("data-background-transition",Rt.backgroundTransition),zt.controls&&(zt.controls.style.display=Rt.controls&&zt.controls?"block":"none"),zt.progress&&(zt.progress.style.display=Rt.progress&&zt.progress?"block":"none"),Rt.rtl?zt.wrapper.classList.add("rtl"):zt.wrapper.classList.remove("rtl"),Rt.center?zt.wrapper.classList.add("center"):zt.wrapper.classList.remove("center"),Rt.mouseWheel?(document.addEventListener("DOMMouseScroll",vt,!1),document.addEventListener("mousewheel",vt,!1)):(document.removeEventListener("DOMMouseScroll",vt,!1),document.removeEventListener("mousewheel",vt,!1)),Rt.rollingLinks?g():h(),Rt.previewLinks?y():(b(),y("[data-preview-link]")),Rt.theme&&zt.theme){var t=zt.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];Rt.theme!==r&&(t=t.replace(n,Rt.theme),zt.theme.setAttribute("href",t))}Y()}function s(){Kt=!0,Line truncated var Reveal=function(){"use strict";function e(e){return t(),Nt||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,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(){if(Wt.theme=document.querySelector("#theme"),Wt.wrapper=document.querySelector(".reveal"),Wt.slides=document.querySelector(".reveal .slides"),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(){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.wrapper.classList.add("center"):Wt.wrapper.classList.remove("center"),Yt.mouseWheel?(docLine truncated