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 相关文章推荐
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
简单的代码实现jquery定时器
Jan 03 Javascript
node.js中的console.assert方法使用说明
Dec 10 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
在网页中插入百度地图的步骤详解
Dec 02 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
Dec 08 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 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
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
内科护士实习自我鉴定
2013/10/17 职场文书
电气专业应届生求职信
2013/11/01 职场文书
标准毕业生自荐信范文
2013/11/04 职场文书
财务管理专业求职信
2014/06/11 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
SQLServer之常用函数总结详解
2021/08/30 SQL Server
springboot实现string转json json里面带数组
2022/06/16 Java/Android