這兩個插件都是關於加載進度動畫的,應該說各有特點吧,最起碼對我來說是各有優勢的。今天一天就搗鼓了加載進度動畫,也研究了大量的(也就這兩個)加載進度動畫,也算對加載進度動畫有了一個初步的了解了吧。
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;
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>
總結:在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的優點有直接引入文件就可以了,不需要在自己寫任何代碼,就自帶了加載進度動畫,只是有一個缺點,官網提供的加載進度動畫都沒有遮罩層。
當然,可以自己進行設置(我不會);
