diff --git a/web/viewer.css b/web/viewer.css index b316ddcb5..e8e986804 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -400,22 +400,32 @@ canvas { display: inline-block; border: 1px solid black; clear: both; + margin:0px; line-height: 0; + border-radius: 4px; } -#loadingBar #progress { +#loadingBar .progress { + background-color: green; display: inline-block; + + background: #b4e391; background: -moz-linear-gradient(top, #b4e391 0%, #61c419 50%, #b4e391 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b4e391), color-stop(50%,#61c419), color-stop(100%,#b4e391)); background: -webkit-linear-gradient(top, #b4e391 0%,#61c419 50%,#b4e391 100%); background: -o-linear-gradient(top, #b4e391 0%,#61c419 50%,#b4e391 100%); background: -ms-linear-gradient(top, #b4e391 0%,#61c419 50%,#b4e391 100%); - background: linear-gradient(top, #b4e391 0%,#61c419 50%,#b4e391 100%); + background: linear-gradient(top, #b4e391 0%,#61c419 50%,#b4e391 100%); + + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } -#loadingBar #remaining { +#loadingBar .remaining { background-color: #333; display: inline-block; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } #PDFBug { diff --git a/web/viewer.html b/web/viewer.html index b30b52db9..6528d484f 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -144,7 +144,7 @@
Loading... 0%
-
+
diff --git a/web/viewer.js b/web/viewer.js index 246577a52..ad24bc0a7 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -29,45 +29,49 @@ var Cache = function cacheCache(size) { var ProgressBar = (function ProgressBarClosure() { - function clamp(v, min, max) { - return Math.min(Math.max(v, min), max); - } + function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); + } - function sizeBar(bar, num, width, height, units) { - var progress = bar.querySelector('#progress'); - var remaining = bar.querySelector('#remaining'); - progress.style.height = height + units; - remaining.style.height = height + units; - progress.style.width = num + units; - remaining.style.width = (width - num) + units; - } + function ProgressBar(id, opts) { - function ProgressBar(element, min, max, width, height, units) { - this.element = element; - this.min = min; - this.max = max; - this.width = width; - this.height = height; - this.units = units; - this.value = min; - sizeBar(element, 0, this.width, this.height, this.units); - } + // Fetch the sub-elements for later + this.progressDiv = document.querySelector(id + ' .progress'); + this.remainingDiv = document.querySelector(id + ' .remaining'); - ProgressBar.prototype = { - constructor: ProgressBar, + // Get options, with sensible defaults + this.height = opts.height || 1; + this.width = opts.width || 15; + this.units = opts.units || 'em'; + this.percent = opts.progress || 0; - get value() { - return this._value; - }, + // Initialize heights + this.progressDiv.style.height = this.height + this.units; + this.remainingDiv.style.height = this.height + this.units; + } - set value(val) { - this._value = clamp(val, this.min, this.max); - var num = this.width * (val - this.min) / (this.max - this.min); - sizeBar(this.element, num, this.width, this.height, this.units); - } - }; + ProgressBar.prototype = { + constructor: ProgressBar, + + updateBar: function ProgressBar_updateBar() { + var progressSize = this.width * this._percent / 100; + var remainingSize = (this.width - progressSize); + + this.progressDiv.style.width = progressSize + this.units; + this.remainingDiv.style.width = remainingSize + this.units; + }, + + get percent() { + return this._percent; + }, + + set percent(val) { + this._percent = clamp(val, 0, 100); + this.updateBar(); + } + }; - return ProgressBar; + return ProgressBar; })(); var RenderingQueue = (function RenderingQueueClosure() { @@ -304,10 +308,9 @@ var PDFView = { document.title = this.url = url; // FIXME: Probably needs a better place to get initialized - if (!PDFView.loadingProgress) { - PDFView.loadingProgress = new ProgressBar( - document.getElementById('loadingBar'), - 0, 100, 15, 1.5, 'em'); + if (!PDFView.loadingBar) { + PDFView.loadingBar = new ProgressBar('#loadingBar', { + width: 15, height: 1.5, units: 'em'}); } var self = this; @@ -451,7 +454,7 @@ var PDFView = { var loadingIndicator = document.getElementById('loading'); loadingIndicator.textContent = 'Loading... ' + percent + '%'; - PDFView.loadingProgress.value = percent; + PDFView.loadingBar.percent = percent; }, load: function pdfViewLoad(data, scale) {