diff options
author | Markku Roponen <markku.roponen@valve.fi> | 2016-04-08 15:47:27 +0300 |
---|---|---|
committer | Markku Roponen <markku.roponen@valve.fi> | 2016-04-08 15:47:27 +0300 |
commit | a63c8cab92932dfb71097b40092d3c7c7c5429c1 (patch) | |
tree | 19cf3ad79c1c83120d8441d13f1b3cf127be8d3a /js | |
parent | e83e275a4ca293fc6aeb9955a3d5e7cbff57eb33 (diff) | |
download | fosdem-2018-presentation-a63c8cab92932dfb71097b40092d3c7c7c5429c1.tar fosdem-2018-presentation-a63c8cab92932dfb71097b40092d3c7c7c5429c1.tar.gz |
Fixes #1549, now UA match is limiting out MS Edge and Chrome detection is improved. Also improved UserAgent access by storing it in to a local variable, it was accessed so many times in different places.
Diffstat (limited to 'js')
-rw-r--r-- | js/reveal.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/js/reveal.js b/js/reveal.js index 0b1cad7..d224e96 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -32,6 +32,7 @@ HORIZONTAL_SLIDES_SELECTOR = '.slides>section', VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section', HOME_SLIDE_SELECTOR = '.slides>section:first-of-type', + UA = navigator.userAgent, // Configuration defaults, can be overridden at initialization time config = { @@ -197,6 +198,9 @@ // Client is a mobile device, see #checkCapabilities() isMobileDevice, + // Client is a desktop Chrome, see #checkCapabilities() + isChrome, + // Throttles mouse wheel navigation lastMouseWheelStep = 0, @@ -301,7 +305,8 @@ */ function checkCapabilities() { - isMobileDevice = /(iphone|ipod|ipad|android)/gi.test( navigator.userAgent ); + isMobileDevice = /(iphone|ipod|ipad|android)/gi.test( UA ); + isChrome = /chrome/i.test( UA ) && !/edge/i.test( UA ); var testElement = document.createElement( 'div' ); @@ -324,13 +329,13 @@ // Transitions in the overview are disabled in desktop and // Safari due to lag - features.overviewTransitions = !/Version\/[\d\.]+.*Safari/.test( navigator.userAgent ); + features.overviewTransitions = !/Version\/[\d\.]+.*Safari/.test( UA ); // Flags if we should use zoom instead of transform to scale // up slides. Zoom produces crisper results but has a lot of // xbrowser quirks so we only use it in whitelsited browsers. features.zoom = 'zoom' in testElement.style && !isMobileDevice && - ( /chrome/i.test( navigator.userAgent ) || /Version\/[\d\.]+.*Safari/.test( navigator.userAgent ) ); + ( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) ); } @@ -1048,7 +1053,7 @@ // Only support touch for Android, fixes double navigations in // stock browser - if( navigator.userAgent.match( /android/gi ) ) { + if( UA.match( /android/gi ) ) { pointerEvents = [ 'touchstart' ]; } @@ -4183,7 +4188,7 @@ } // There's a bug with swiping on some Android devices unless // the default action is always prevented - else if( navigator.userAgent.match( /android/gi ) ) { + else if( UA.match( /android/gi ) ) { event.preventDefault(); } |