NProgress显示顶部进度条效果及使用详解


Posted in Javascript onSeptember 21, 2019

NProgress实现显示加载进度条效果,具有逼真的动画涓涓细流来说服你的用户,无页面跳转效果 ,极大提高用户体验效果

1. 官网下载地址

实现效果如下GIF图片所示:(请求的数据比较小,所以跑得比较快,可以开发者工具Network设置为3G以下网速看得更清晰点)

NProgress显示顶部进度条效果及使用详解

2. 引入需要的 nprogress.css 和 nprogress.js 文件

NProgress显示顶部进度条效果及使用详解

<link rel="stylesheet" type="text/css" href="nprogress.css" rel="external nofollow" />
<script src="nprogress.js"></script>

3. 基本用法:只需要调用NProgress的 start() 和 done() 的API来控制进度条

NProgress最重要两个API就是start()和done(),基本一般用这两个就足够了。
·
NProgress.start(); //显示进度条
NProgress.done(); //完成进度条

·

下面结合ajax的ajaxStart()和ajaxStop()全局事件代码实现加载效果。

<body>
 <button id="btn">请求</button>
 <script src="nprogress.js"></script>
 <script src="jquery.js"></script>
 <script>
 $(document)
 .ajaxStart(function () {
 //请求开始了
 NProgress.start();
 })
 .ajaxStop(function () {
 //请求结束了
 NProgress.done();
 })
 $('#btn').on('click', function () {
 $.get('time.php')
 })
 </script>
</body>

实现效果:(GIF)

NProgress显示顶部进度条效果及使用详解

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 class='....'>...</div>"
});

(3)ease:调整动画设置,ease可传递CSS3缓冲动画字符串(如ease、linear、ease-in、ease-out、ease-in-out、cubic-bezier)。speed为动画速度(单位ms)。

NProgress.configure({ease:'ease',speed:500});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
ext 同步和异步示例代码
Sep 18 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
Jul 11 Javascript
一些老手都不一定知道的JavaScript技巧
May 06 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
如何编写高质量JS代码
Dec 28 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
vue两组件间值传递 $router.push实现方法
May 15 Javascript
vue开发拖拽进度条滑动组件
Sep 21 #Javascript
layui点击弹框页面 表单请求的方法
Sep 21 #Javascript
使用vue制作滑动标签
Sep 21 #Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 21 #Javascript
Vue插件之滑动验证码
Sep 21 #Javascript
Layui tree 下拉菜单树的实例代码
Sep 21 #Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 #Javascript
You might like
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
限制复选框的最大可选数
2006/07/01 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
Pytorch之finetune使用详解
2020/01/18 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
C#面试题问题集
2016/04/02 面试题
营业经理岗位职责
2013/11/10 职场文书
大学生求职自我评价
2014/01/16 职场文书
管理专员自荐信
2014/01/26 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
西湖英语导游词
2015/02/06 职场文书
《1942》观后感
2015/06/08 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS