进度条加载

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 传递进度?

在recyclerview片段Reandroid中屏幕旋转后进度条不显示

css Bootstrap 3进度条片段

常用的网页加载进度条