Minimalist progress bar
See the original nprogress written by rstacruz, without whom this project wouldn't exist.
The last letter e
is used for package name distinction, while the usages are almost the same, see the following.
Table of Contents
$ npm install --save nprogresse
Here is an example code for basic usage.
Here is an example code for simple usage.
<!-- in standalone html -->
<script src="nprogresse/index.js"></script>
<link rel="stylesheet" href="nprogresse/style.css" />
<script>
window.NProgressE.start();
// time elapsed
window.NProgressE.done();
// or
window.NProgressE.error();
</script>
Simply call start()
, done()
and error()
to control the progress bar.
import NProgressE from 'nprogresse';
import 'nprogresse/style.css';
// start the progress
NProgressE.start();
// finish the progress in good status
NProgressE.done();
// finish the progress in error status
NProgressE.error();
$(document).on('ajax:start', function () {
NProgressE.start();
});
$(document).on('ajax:end', function () {
if ('ajax:success') {
NProgressE.done();
} else {
NProgressE.error();
}
});
-
Add progress to your Ajax calls! Bind it to the jQuery
ajaxStart
andajaxStop
events.-
done()
forajaxSuccesss
. -
error()
forajaxError
.
-
-
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
.
NProgressE.set(0.0); // same as .start()
NProgressE.set(0.4);
NProgressE.set(1.0); // 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).
NProgressE.inc();
If you want to increment by a specific value, you can pass that as a parameter:
NProgressE.inc(0.2); // This will get the current status value and adds 0.2 until status is 0.994
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)
NProgressE.done(true);
Force-error
By passing true
to error()
, it will show the progress bar even if it's not being shown.
NProgressE.error(true);
Get the status value
To get the status value, use .status
.
console.log(NProgressE.status);
Get the progress element
To get the element, use .el
;
console.log(NProgressE.el);
Changes the minimum percentage used upon starting, (default: 0.08
).
NProgressE.configure({ minimum: 0.1 });
You can change the markup using template
. To keep the progress
bar working, keep an element with role='bar'
in there. See the default template for reference.
NProgressE.configure({
template: "<div class='....'>...</div>",
});
Adjust animation settings using easing (a CSS easing string) and speed (in ms), (default: ease
and 200
).
NProgressE.configure({ easing: 'ease', speed: 500 });
Turn off the automatic incrementing behavior by setting this to false
. (default: true
)
NProgressE.configure({ trickle: false });
Adjust how often to trickle/increment, in ms.
NProgressE.configure({ trickleSpeed: 200 });
Turn on loading spinner by setting it to true, (default: false
).
NProgressE.configure({ showSpinner: true });
Specify this to change the parent container, (default: body
).
NProgressE.configure({ parent: '#container' });
Modify the built style.css to your liking.
The included CSS file is pretty minimal.
Tip: you probably only want to find source less file here.
In fact, feel free to scrap it and make your own style!