NProgress实现显示加载进度条效果,具有逼真的动画涓涓细流来说服你的用户,无页面跳转效果 ,极大提高用户体验效果
1. 官网下载地址
实现效果如下GIF图片所示:(请求的数据比较小,所以跑得比较快,可以开发者工具Network设置为3G以下网速看得更清晰点)
2. 引入需要的 nprogress.css 和 nprogress.js 文件
<link type="text/css" href="https://www.jb51.net/nprogress.css" /> <script src="https://www.jb51.net/nprogress.js"></script>
3. 基本用法:只需要调用NProgress的 start() 和 done() 的API来控制进度条
NProgress最重要两个API就是start()和done(),基本一般用这两个就足够了。
·
NProgress.start(); //显示进度条
NProgress.done(); //完成进度条
·
下面结合ajax的ajaxStart()和ajaxStop()全局事件代码实现加载效果。
<body> <button>请求</button> <script src="https://www.jb51.net/nprogress.js"></script> <script src="https://www.jb51.net/jquery.js"></script> <script> $(document) .ajaxStart(function () { //请求开始了 NProgress.start(); }) .ajaxStop(function () { //请求结束了 NProgress.done(); }) $('#btn').on('click', function () { $.get('time.php') }) </script> </body>
实现效果:(GIF)
4. NProgress 其他高级用法
(1)百分比:通过设置progress的百分比,调用 .set(n)来控制进度,其中n的取值范围为0-1。
NProgress.set(0.0); NProgress.set(0.4); NProgress.set(1.0);
(2)递增:要让进度条增加,只要调用 .inc()。这会产生一个随机增量,但不会让进度条达到100%。此函数适用于图片加载或其他类似的文件加载。
NProgress.inc();
(3)强制完成:通过传递 true 参数给done(),使进度条满格,即使它没有被显示。
NProgress.done(true);
5. NProgress 其他配置
(1)minimum:设置最低百分比
NProgress.configure({minimum:0.1});
(2)template:改变进度条的HTML结构。为保证进度条能正常工作,需要元素拥有role='bar'属性。
NProgress.configure({ template:"<div>...</div>" });
(3)ease:调整动画设置,ease可传递CSS3缓冲动画字符串(如ease、linear、ease-in、ease-out、ease-in-out、cubic-bezier)。speed为动画速度(单位ms)。
NProgress.configure({ease:'ease',speed:500});