这两个插件都是关于加载进度动画的,应该说各有特点吧,最起码对我来说是各有优势的。今天一天就捣鼓了加载进度动画,也研究了大量的(也就这两个)加载进度动画,也算对加载进度动画有了一个初步的了解了吧。
NProgress.js
NProgress是基于jquery的,且版本要 >1.8
API:
NProgress.start() — 启动进度条
NProgress.set(0.4) — 将进度设置到具体的百分比位置
NProgress.inc() — 少量增加进度
NProgress.done() — 将进度条标为完成状态
引入:
<link rel="stylesheet" type="text/css" href="css/NProgress.css"> <script src="js/NProgress.js" type="text/javascript"></script>
//还有jquery要引入进来
使用:
<script>
$(function() { NProgress.start(); $(window).load(function() { NProgress.done(); });
</script>
自定义动画样式:
将我们定义的样式写到一个script标签里,这算是一个小技巧吧。
<script type="text" id="myId">
<div class="splash card">
<p class="lead" style="text-align:center">不要回来,马上走开...</p>
<div class="progress"> <div class="mybar" role="bar"> </div> </div> </div>
</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; 100px; } .card { background-color: #f7f7f7; padding: 20px 25px 15px; margin: 0 auto 25px; 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>
总结:在js里控制动画什么时候开始,什么时候结束,已及加载的动画样式。
在自定义样式里关键的两个指针就是 role 属性:
role=bar :横向加载条
role=spinner 旋转的小圈
样例2:(省略了css)
<script type="text" id="myId"> <div class="bar" role="bar" style="display=block">
<div class="peg"></div>
</div>
<div class="spinner" role="spinner">
<div class="spinner-icon"></div>
</div> </script>
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" />
<!-- 此处的css样式就决定了加载进度动画的样式 --> </head>
改变动画样式:
pace里已经设计好了许多种加载进度动画,只需要变化css文件就可以了
总结:
pace的优点有直接引入文件就可以了,不需要在自己写任何代码,就自带了加载进度动画,只是有一个缺点,官网提供的加载进度动画都没有遮罩层。
当然,可以自己进行设置(我不会);