前端页面加载进度条插件对比:NProgress.js与Pace.js实战指南
本文对比分析两款常用的前端加载进度条插件:NProgress.js与Pace.js。NProgress基于jQuery,需手动控制进度条状态,支持高度自定义样式;Pace.js则自动监测请求,无需编写额外JS代码即可显示动画,但默认样式无遮罩层。文章详细列举了两者的API用法、引入方式及样式定制技巧,帮助开发者根据项目需求选择合适的方案。
前言:加载进度动画插件概述
这两款插件均用于实现页面加载时的进度动画效果,且各具特色,对我而言各有优势。经过一整天的研究与实践,深入探讨了包括这两款在内的多种加载动画方案,从而对前端加载进度动画有了初步的系统性认识。
NProgress.js详解
NProgress.js
NProgress是一个基于jQuery的库,要求jQuery版本高于1.8。
API接口说明:
NProgress.start():启动进度条显示。 NProgress.set(0.4):将进度条设置为具体的百分比数值(如0.4代表40%)。 NProgress.inc():少量增加进度值。 NProgress.done():将进度条标记为完成状态。
引入方式:
<link rel="stylesheet" type="text/css" href="css/NProgress.css" rel="external nofollow" >
<script src="js/NProgress.js" type="text/javascript"></script><br>//还有jquery要引入进来
基本使用示例:
<script>
$(function() {
NProgress.start();
$(window).load(function() {
NProgress.done();
});
</script>
自定义动画样式配置:
这里分享一个实用技巧:将自定义的HTML结构定义在script标签中,以便在JS中引用。
<script type="text" id="myId"><br> <div class="splash card"><br> <p class="lead" style="text-align:center">不要回来,马上走开...</p>
<div class="progress">
<div class="mybar" role="bar">
</div>
</div>
</div><br></script>
对应的CSS样式代码如下:
html,body,iframe{
margin: 0;
padding: 0;
}
#nprogress{
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #f7f7f7;
z-index: 999;
}
.spinner-icon{
display: none!important;
}
.splash {
position:absolute;
top:40%;
left:0;
right:0;
margin: auto;
}
.splash img {
display: block;
margin-left: auto;
margin-right: auto;
height: 100px;
width: 100px;
}
.card {
background-color: #f7f7f7;
padding: 20px 25px 15px;
margin: 0 auto 25px;
width: 380px;
}
.mybar {
background: #29d;
height:10px;
}
.progress {
height: 10px;
overflow: hidden;
}
经过上述配置,JS代码调整为以下形式:
<script type="text/javascript">
$(function(){
NProgress.configure({
template: $('#myId').html() // template是用来设置动画样式的属性
});
NProgress.start();
});
$(window).load(function(){
NProgress.done();
})
</script>
总结:NProgress的核心在于通过JavaScript代码精确控制动画的启动、结束时机以及加载条的视觉样式。
在自定义样式中,有两个关键的属性指针用于控制显示元素:
role="bar":对应横向加载进度条。
role="spinner":对应旋转的小圆圈动画。
样例2展示(此处省略具体CSS代码):
<script type="text" id="myId">
<em id="__mceDel"><em id="__mceDel"><div class="bar" role="bar" style="display=block"><br> <div class="peg"></div><br> </div><br> <div class="spinner" role="spinner"><br> <div class="spinner-icon"></div><br> </div></em></em>
</script>
Pace.js详解
Pace.js
API接口说明:
Pace.start:开始显示进度条。如果不使用AMD或Browserify模块加载方式,该函数会默认自动执行。 Pace.restart:重置进度条并重新显示。 Pace.stop:隐藏进度条并停止加载监测。 Pace.track:手动监测一个或多个特定的请求任务。 Pace.ignore:忽略一个或多个特定的请求任务。
基本用法示例:
<head>
<script src="/pace/pace.js"></script>
<link href="/pace/themes/pace-theme-barber-shop.css" rel="external nofollow" rel="stylesheet" /> <br> <!-- 此处的css样式就决定了加载进度动画的样式 -->
</head>
修改动画样式的方法:
Pace.js内置了多种预设的加载进度动画样式,开发者只需切换不同的CSS文件即可实现样式的变更。
总结:
Pace.js的主要优势在于直接引入文件即可生效,无需编写任何额外的JavaScript代码,它会自动生成加载进度动画。其缺点在于官方提供的默认加载动画均不包含遮罩层效果。
当然,用户也可以自行配置添加遮罩层(作者表示暂未掌握具体方法);
以上是对pace.js和NProgress.js两款加载进度插件的简要总结,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!
Mock.js 拦截失效或数据格式错误的常见原因及排查
2026-11-05 10:11:59
Java和JavaScript名字像但没关系:辨析Java、JavaWeb与JS
2026-11-04 09:30:54
CodePen、JSFiddle与RunJS对比:哪款JS在线运行工具更适合你?
2026-11-03 16:46:57
JS 统计图渲染空白或报错怎么排查?常见问题解决指南
2026-11-03 09:49:40
flv.js 常见报错 MediaError 与解码失败排查指南
2026-11-02 10:29:29
