diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-11-07 17:49:41 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-11-07 17:49:41 -0500 |
| commit | 6613eafa8d5c3e323e464e56c523505928568844 (patch) | |
| tree | 97c88cb2e6fa12c2659460563a749882968d4a93 /public/assets/javascripts | |
| parent | f007cec1adce5fee283acc165aaab634c1819564 (diff) | |
don’t put things in the dom until you’re in landscape mode
Diffstat (limited to 'public/assets/javascripts')
| -rw-r--r-- | public/assets/javascripts/ui/reader/ReaderView.js | 21 | ||||
| -rw-r--r-- | public/assets/javascripts/vendor/polyfill.js | 8 |
2 files changed, 25 insertions, 4 deletions
diff --git a/public/assets/javascripts/ui/reader/ReaderView.js b/public/assets/javascripts/ui/reader/ReaderView.js index db2ab2f..aea681a 100644 --- a/public/assets/javascripts/ui/reader/ReaderView.js +++ b/public/assets/javascripts/ui/reader/ReaderView.js @@ -50,8 +50,27 @@ var ReaderView = View.extend({ ready: function(data){ $("#map").hide() - this.data = data + var is_landscape = window.innerWidth > window.innerHeight + + if (is_desktop || (is_mobile && is_landscape)) { + this.build(data) + return + } + + // don't build anything until we're in landscape mode, otherwise ios might crash + var orientationFn = orientationchange.bind(this) + window.addEventListener('orientationchange', orientationFn) + function orientationchange (e) { + var is_landscape = window.innerWidth > window.innerHeight + if (is_landscape) { + window.removeEventListener('orientationchange', orientationFn) + this.build(data) + } + } + }, + + build: function(data){ data.rooms && Rooms.deserialize(data.rooms) data.walls && Walls.deserialize(data.walls) data.media && Scenery.deserialize(data.media) diff --git a/public/assets/javascripts/vendor/polyfill.js b/public/assets/javascripts/vendor/polyfill.js index 8e4b9dc..499cbc5 100644 --- a/public/assets/javascripts/vendor/polyfill.js +++ b/public/assets/javascripts/vendor/polyfill.js @@ -53,10 +53,12 @@ function has3d(){ })( navigator.userAgent ); // Naive useragent detection pattern -var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); -var is_ipad = (navigator.userAgent.match(/iPad/i)); +var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) +var is_ipad = (navigator.userAgent.match(/iPad/i)) var is_android = (navigator.userAgent.match(/Android/i)) -var is_mobile = is_iphone || is_ipad || is_android; +var is_mobile = is_iphone || is_ipad || is_android +var is_desktop = ! is_mobile; + // rAF shim (function() { |
