• 【JavaScript】HTML5/CSS3实现五彩进度条应用


    今天要介绍的是一款基于HTML5和CSS3的进度条应用,这款进度条是静态的,仅提供进度条的五彩外观。当然你可以在CSS中动态设置进度值来让其变得动态,一个很好的实现方式是利用jQuery动态改变CSS中的进度值,让进度条实时动起来。具体效果大家可以看演示。

    css3-progress-5-colors

    你也可以在这里查看在线演示

    接下来我们来分析一下这款进度条的源代码以及实现思路,代码主要由HTML和CSS组成,如果你需要动态改变进度值,也可以自己添加Javascript代码,也是比较简单的。

    HTML代码:

    复制代码
    <section class="container">
        <div class="progress">
          <span style=" 20%;"><span>20%</span></span>
        </div>
    
        <div class="progress">
          <span class="green" style=" 40%;"><span>40%</span></span>
        </div>
    
        <div class="progress">
          <span class="orange" style=" 60%;"><span>60%</span></span>
        </div>
    
        <div class="progress">
          <span class="red" style=" 80%;"><span>80%</span></span>
        </div>
    
        <div class="progress">
          <span class="blue" style=" 100%;"><span>100%</span></span>
        </div>
      </section>
    复制代码

    从HTML结构中我们可以看出,类名为progress的div是整个进度条的父容器,里面的span则是当前进度,通过width来定义不同的进度值,同时定义不同的颜色类,比如orange,以便待会在CSS中进行样式渲染。

    CSS代码:

    复制代码
    .progress {
      height: 20px;
      background: #ebebeb;
      border-left: 1px solid transparent;
      border-right: 1px solid transparent;
      border-radius: 10px;
    }
    .progress > span {
      position: relative;
      float: left;
      margin: 0 -1px;
      min- 30px;
      height: 18px;
      line-height: 16px;
      text-align: right;
      background: #cccccc;
      border: 1px solid;
      border-color: #bfbfbf #b3b3b3 #9e9e9e;
      border-radius: 10px;
      background-image: -webkit-linear-gradient(top, #f0f0f0 0%, #dbdbdb 70%, #cccccc 100%);
      background-image: -moz-linear-gradient(top, #f0f0f0 0%, #dbdbdb 70%, #cccccc 100%);
      background-image: -o-linear-gradient(top, #f0f0f0 0%, #dbdbdb 70%, #cccccc 100%);
      background-image: linear-gradient(to bottom, #f0f0f0 0%, #dbdbdb 70%, #cccccc 100%);
      -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
      box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
    }
    .progress > span > span {
      padding: 0 8px;
      font-size: 11px;
      font-weight: bold;
      color: #404040;
      color: rgba(0, 0, 0, 0.7);
      text-shadow: 0 1px rgba(255, 255, 255, 0.4);
    }
    .progress > span:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1;
      height: 18px;
      background: url("../img/progress.png") 0 0 repeat-x;
      border-radius: 10px;
    }
    .progress .green {
      background: #85c440;
      border-color: #78b337 #6ba031 #568128;
      background-image: -webkit-linear-gradient(top, #b7dc8e 0%, #99ce5f 70%, #85c440 100%);
      background-image: -moz-linear-gradient(top, #b7dc8e 0%, #99ce5f 70%, #85c440 100%);
      background-image: -o-linear-gradient(top, #b7dc8e 0%, #99ce5f 70%, #85c440 100%);
      background-image: linear-gradient(to bottom, #b7dc8e 0%, #99ce5f 70%, #85c440 100%);
    }
    .progress .red {
      background: #db3a27;
      border-color: #c73321 #b12d1e #8e2418;
      background-image: -webkit-linear-gradient(top, #ea8a7e 0%, #e15a4a 70%, #db3a27 100%);
      background-image: -moz-linear-gradient(top, #ea8a7e 0%, #e15a4a 70%, #db3a27 100%);
      background-image: -o-linear-gradient(top, #ea8a7e 0%, #e15a4a 70%, #db3a27 100%);
      background-image: linear-gradient(to bottom, #ea8a7e 0%, #e15a4a 70%, #db3a27 100%);
    }
    .progress .orange {
      background: #f2b63c;
      border-color: #f0ad24 #eba310 #c5880d;
      background-image: -webkit-linear-gradient(top, #f8da9c 0%, #f5c462 70%, #f2b63c 100%);
      background-image: -moz-linear-gradient(top, #f8da9c 0%, #f5c462 70%, #f2b63c 100%);
      background-image: -o-linear-gradient(top, #f8da9c 0%, #f5c462 70%, #f2b63c 100%);
      background-image: linear-gradient(to bottom, #f8da9c 0%, #f5c462 70%, #f2b63c 100%);
    }
    .progress .blue {
      background: #5aaadb;
      border-color: #459fd6 #3094d2 #277db2;
      background-image: -webkit-linear-gradient(top, #aed5ed 0%, #7bbbe2 70%, #5aaadb 100%);
      background-image: -moz-linear-gradient(top, #aed5ed 0%, #7bbbe2 70%, #5aaadb 100%);
      background-image: -o-linear-gradient(top, #aed5ed 0%, #7bbbe2 70%, #5aaadb 100%);
      background-image: linear-gradient(to bottom, #aed5ed 0%, #7bbbe2 70%, #5aaadb 100%);
    }
    复制代码

    这里我们对前面HTML中定义的不同颜色的进度条进行了CSS定义,设置背景颜色、边框颜色以及利用linear-gradient属性设置线性渐变的背景。看起来CSS代码非常简单,也没有太多CSS3的东西。以上只是核心代码,你也可以自己下载完整的代码研究。源码下载>>

    http://www.cnblogs.com/html5tricks/p/3913829.html

  • 相关阅读:
    javascript作用域
    [翻译]Review——How JavaScript works:The building blocks of Web Workers
    [转]Shared——回调函数是什么
    由上一个血案引发的关于property和attribute关系的思考
    RN canvas画布大小之谜
    [转]Tips——Chrome DevTools
    Algorithm——无重复字符的最长子串
    [翻译]Review——The Inner Workings Of Virtual DOM
    Tips——单页面内的多重跳转路由使用
    [转]Shared——Javascript中的call详解
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3916995.html
Copyright © 2020-2023  润新知