进度条加载
Posted 辣牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进度条加载相关的知识,希望对你有一定的参考价值。
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><br>//还有jquery要引入进来
使用:
<script>
$(function() {
NProgress.start();
$(window).load(function() {
NProgress.done();
});
</script>
自定义动画样式:
将我们定义的样式写到一个script标签里,这算是一个小技巧吧。
<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>
总结:在js里控制动画什么时候开始,什么时候结束,已及加载的动画样式。
在自定义样式里关键的两个指针就是 role 属性:
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
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里已经设计好了许多种加载进度动画,只需要变化css文件就可以了
总结:
pace的优点有直接引入文件就可以了,不需要在自己写任何代码,就自带了加载进度动画,只是有一个缺点,官网提供的加载进度动画都没有遮罩层。
以上是关于进度条加载的主要内容,如果未能解决你的问题,请参考以下文章
自定义对话框片段内的进度条 - 如何从 AsyncTask 传递进度?