Slim progress bars for Ajax'y applications. Forked from NProgress by Rico Sta Cruz.
Add jQuery (1.8 or above), [guprogress.js] and [guprogress.css] to your project.
Instantiate a new GUProgress instance, pass in the target element, and call start()
and done()
to control the progress bar.
var progress = new GUProgress(document.body);
progress.start();
progress.done();
Using Turbolinks or similar? Ensure you're using Turbolinks 1.3.0+, and use this: (explained here)
$(document).on('page:fetch', function() { progress.start(); });
$(document).on('page:change', function() { progress.done(); });
$(document).on('page:restore', function() { progress.remove(); });
-
Add progress to your Ajax calls! Bind it to the jQuery
ajaxStart
andajaxStop
events. -
Make a fancy loading bar even without Turbolinks/Pjax! Bind it to
$(document).ready
and$(window).load
.
Percentages: To set a progress percentage, call .set(n)
, where n is a
number between 0..1
.
progress.set(0.0); // Sorta same as .start()
progress.set(0.4);
progress.set(1.0); // Sorta same as .done()
Incrementing: To increment the progress bar, just use .inc()
. This
increments it with a random amount. This will never get to 100%: use it for
every image load (or similar).
progress.inc();
Force-done: By passing true
to done()
, it will show the progress bar
even if it's not being shown. (The default behavior is that .done() will not
do anything if .start() isn't called)
progress.done(true);
Change the minimum percentage using minimum
.
new GUProgress({ minimum: 0.1 });
You can change the markup using template
. To keep the progress
bar working, keep an element with role='bar'
in there.
new GUProgress({
template: "<div class='....'>...</div>"
});
Adjust animation settings using ease
(a CSS easing string) and speed
(in
ms).
new GUProgress({ ease: 'ease', speed: 500 });
Want to turn off trickling? Set trickle
to false
.
new GUProgress({ trickle: false });
You can adjust the trickleRate
(how much to increase per trickle) and
trickleSpeed
(how often to trickle, in ms).
new GUProgress({ trickleRate: 0.02, trickleSpeed: 800 });
Want to turn off loading spinner? Set showSpinner
to false
.
new GUProgress({ showSpinner: false });
Just edit guprogress.css
to your liking. Tip: you probably only want to find
and replace occurances of #29d
.
The included CSS file is pretty minimal... in fact, feel free to scrap it and make your own!
- New UI Pattern: Website Loading Bars (usabilitypost.com)
© 2014, Weiran Zhang, Glass Umbrella. Released under the MIT License.
Forked from NProgress, © 2013, Rico Sta. Cruz.
GUProgress is authored and maintained by Weiran Zhang of Glass Umbrella with help from its contributors
- My website (weiranzhang.com)
- Github (@weiran)
- Twitter (@weiran)