diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-04-13 16:45:01 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-04-13 16:45:20 -0400 |
| commit | e791ea8b3d6855b62962e4c89ad2c9f86126daf1 (patch) | |
| tree | 09709428f7845337954ef79dd12e6f6e71b5e883 | |
| parent | 741bb035e10a1d89dfaa60ab79d25a63d2ff4726 (diff) | |
stub in loader
| -rw-r--r-- | site/public/assets/javascripts/_env.js | 29 | ||||
| -rw-r--r-- | site/public/assets/javascripts/app.js | 2 | ||||
| -rw-r--r-- | site/public/assets/javascripts/vendor/loader.js | 23 |
3 files changed, 47 insertions, 7 deletions
diff --git a/site/public/assets/javascripts/_env.js b/site/public/assets/javascripts/_env.js index ca94ee2..2c183aa 100644 --- a/site/public/assets/javascripts/_env.js +++ b/site/public/assets/javascripts/_env.js @@ -13,9 +13,7 @@ var done_loading = false, menu_open = false, entry_open = false var environment = {}, hashes = {} environment.init = function(){ - var loader = new Loader(function(){ - environment.ready() - }) + var loader = new Loader(environment.ready, new HustleLoader) var preloadImages = $("#preload-image-list").html().split("\n").filter(function(s){ return !!s }) loader.preloadImages(box_images.map(function(url){ return base_href + url @@ -495,3 +493,28 @@ Strip.prototype.update = function(t){ el.y = el.height / 2 }) } + +function HustleLoader () { + function init(){ + build() + } + function build(){ + setTimeout(function(){ $("#loader_svg").addClass("slide") }, 100) + +// loading_text.innerHTML = "<span>" + loading_text.innerHTML.split("").join("</span><span>") + "</span>" + } + this.update = function (i) { +// loading_status.style.width = ((100*(1-i))|0) + "%" +// loader_svg_status.setAttribute("y", (i) * 245) + } + this.finish = function(cb){ + $("#loader_rapper").addClass("hidden") + setTimeout(cb, 100) + setTimeout(function(){ + $("#loader_rapper").hide() + }, 300) + } + init() +} + + diff --git a/site/public/assets/javascripts/app.js b/site/public/assets/javascripts/app.js index dd68726..8d20e65 100644 --- a/site/public/assets/javascripts/app.js +++ b/site/public/assets/javascripts/app.js @@ -18,7 +18,7 @@ app.init = function () { } app.launch = function () { - if ($.browser.msie || ! has3d()) { return app.fallback() } + // if ($.browser.msie || ! has3d()) { return app.fallback() } scene = new MX.Scene().addTo('#scene') diff --git a/site/public/assets/javascripts/vendor/loader.js b/site/public/assets/javascripts/vendor/loader.js index 4c1c8cd..b939941 100644 --- a/site/public/assets/javascripts/vendor/loader.js +++ b/site/public/assets/javascripts/vendor/loader.js @@ -1,13 +1,17 @@ var Loader = Loader || (function(){ - function Loader (readyCallback){ + function Loader (readyCallback, view){ this.assets = {}; this.images = []; this.readyCallback = readyCallback; + this.count = 0 + this.view = view + this.loaded = false } // Register an asset as loading Loader.prototype.register = function(s){ this.assets[s] = false; + this.count += 1 } // Signal that an asset has loaded @@ -16,10 +20,18 @@ var Loader = Loader || (function(){ this.assets[s] = true; if (this.loaded) return; + + this.view && this.view.update( this.percentRemaining() ) + if (! this.isReady()) return; this.loaded = true; - this.readyCallback && this.readyCallback(); + if (this.view) { + this.view && this.view.finish(this.readyCallback) + } + else { + this.readyCallback && this.readyCallback(); + } } // (boolean) Is the loader ready? @@ -31,6 +43,11 @@ var Loader = Loader || (function(){ } return true; } + + // (float) Percentage of assets remaining + Loader.prototype.percentRemaining = function(){ + return this.remainingAssets() / this.count + } // (int) Number of assets remaining Loader.prototype.remainingAssets = function(){ @@ -38,7 +55,7 @@ var Loader = Loader || (function(){ for (var s in this.assets) { if (this.assets.hasOwnProperty(s) && this.assets[s] != true) { n++; - console.log('remaining: ' + s); + // console.log('remaining: ' + s); } } return n; |
