7-11 进度条--动态条纹进度条
本节编程练习不计算学习进度,请电脑登录imooc.com操作

进度条--动态条纹进度条

使用方法:

在进度条“progress progress-striped”两个类的基础上再加入“active”类名。如下代码:

<div class="progress progress-striped active">
    <div class="progress-bar progress-bar-success" style="width:40%"></div>
</div>

实现原理:

为了让条纹进度条动起来,Bootstrap框架还提供了一种动态条纹进度条。其实现原理主要通过CSS3的animation来完成。首先通过@keyframes创建了一个progress-bar-stripes的动画,这个动画主要做了一件事,就是改变背景图像的位置,也就是background-position的值。因为条纹进度条是通过CSS3的线性渐变来制作的,而linear-gradient实现的正是对应背景中的背景图片。

/*bootstrap.css文件第4500行~第4515行*/
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}

了解CSS3的同学都知道,@keyframes仅仅是创建了一个动画效果,如果要让进度条真正的动起来,我们需要通过一定的方式调用@keyframes创建的动画“progress-bar-stripes”,并且通过一个事件触发动画生效。在Bootstrap框架中,通过给进度条容器“progress”添加一个类名“active”,并让文档加载完成就触“progress-bar-stripes”动画生效。

<div class="progress progress-striped active">
    <div class="progress-bar progress-bar-success" style="width:40%"></div>
</div>
<div class="progress progress-striped active">
    <div class="progress-bar progress-bar-info" style="width:60%"></div>
</div>
<div class="progress progress-striped active">
    <div class="progress-bar progress-bar-warning" style="width:80%"></div>
</div>
<div class="progress progress-striped active">
    <div class="progress-bar progress-bar-danger" style="width:50%"></div>
</div>

调用动画对应的样式代码如下:

/*bootstrap.css文件第4544行~第4547行*/
.progress.active .progress-bar {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
          animation: progress-bar-stripes 2s linear infinite;
}

运行效果如下:

特别注意要让条纹进度条动起来,就需要让“progress-striped”和“active”同时运用,不然条纹进度条是不具备动效效果。

任务

我来试试:补充代码制作一个“动态条文的进度条

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>进度条--动态条纹进度条</title>
  6. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  7. </head>
  8. <body>
  9. <div class="progress progress-striped active">
  10. <div class="progress-bar progress-bar-success" style="width:40%"></div>
  11. </div>
  12. <div class="progress progress-striped active">
  13. <div class="progress-bar progress-bar-info" style="width:60%"></div>
  14. </div>
  15. <div class="progress progress-striped active">
  16. <div class="progress-bar progress-bar-warning" style="width:80%"></div>
  17. </div>
  18. <div class="progress progress-striped active">
  19. <div class="progress-bar progress-bar-danger" style="width:50%"></div>
  20. </div>
  21. <br/>
  22. <br/>
  23. <!--下面是代码任务部分-->
  24. <h2>代码任务部分</h2>
  25. <div class="progress">
  26. <div class="progress-bar" style="width:50%"></div>
  27. </div>
  28.  
  29. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  30. <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  31. </body>
  32. </html>
  1. body {
  2. padding: 50px 100px;
  3. }
下一节