前端页面加载进度条插件对比:NProgress.js与Pace.js实战指南

作者:桌面漫游时间:2026-10-22 12:07:54浏览:487

本文对比分析两款常用的前端加载进度条插件: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两款加载进度插件的简要总结,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!

作者最新文章