zoukankan      html  css  js  c++  java
  • 简单实用的进度条、时间轴

      这是个啥?

      一个小小的显示控件,用来展示流程进度,也可以作为时间轴实用,我们接下来暂且叫它作进度条吧。

      这个进度条用js封装了一小下,提供setDoneStep()、setFailedStep()两个方法用来对进度条设置成功步骤和失败步骤。由于个人项目只需要这两个方法就好,没有做更多的功能,也没有做动画效果。

      运行效果

      进度成功在第三步:

      

      进度失败在第四步:

       

      一言不合就上代码

    <html>
    <head>
        <meta charset="UTF-8">
        <title>ProgressPoint</title>
        <style>
            ol.progressPoint{
                list-style: none outside none;
            }
    
            ol.progressPoint > li > div{
                float: left;
            }
            
            ol.progressPoint > li > div.point{
                 30px;
                height: 30px;
                background-color: grey;
                border-radius: 50px;
                text-align: center;
                line-height: 30px;
                border: 2px solid rgba(224,224,224,1);
            }
    
            ol.progressPoint > li > div.point > div.descrition{
                font-size: 12px;
                white-space: nowrap;
            }
    
            ol.progressPoint > li > div.done{
                background-color: green;
            }
    
            ol.progressPoint > li > div.failed{
                background-color: red;
            }
    
            ol.progressPoint > li > .line{
                background-color: grey;
                height: 5px;
                 100px;
                margin-top: 14px;
            }
        </style>
    
    </head>
    <body>
        <ol id="progressPoint" class="progressPoint">
            <li>
                <div class="point">
                    <div>1</div>
                    <div class="descrition">开始</div>
                </div>
            </li>
            <li>
                <div class="line"></div>
                <div class="point">
                    <div>2</div>
                    <div class="descrition">第一步</div>
                </div>
            </li>
            <li>
                <div class="line"></div>
                <div class="point">
                    <div>3</div>
                    <div class="descrition">第二步</div>
                </div>
            </li>
            <li>
                <div class="line"></div>
                <div class="point">
                    <div>4</div>
                    <div class="descrition">第三步</div>
                </div>
            </li>
            <li>
                <div class="line"></div>
                <div class="point">
                    <div>5</div>
                    <div class="descrition">第四步</div>
                </div>
            </li>
            <li>
                <div class="line"></div>
                <div class="point">
                    <div>6</div>
                    <div class="descrition">完成</div>
                </div>
            </li>
        </ol>
    </body>
    <script text="javascript/text">
        var ProgressPoint = (function(config){
            function ProgressPoint(config){
                var thiz = this;
                this.id = config.id;
            }
    
            ProgressPoint.prototype.setDoneStep = function(step){
                if(isNaN(step)){
                    throw '请为setDoneStep方法传递参数,且必须为数字!';
                }
                
                var nodeList = document.getElementById(this.id).children;
                
                for(var i = 0; i < step && i < nodeList.length; i++){
                    var childList = nodeList[i].children;
                    for(var n = 0; n < childList.length; n ++){
                        childList[n].className = childList[n].className + ' ' + 'done';
                    }
                }
            };
    
            ProgressPoint.prototype.setFailedStep = function(step){
                if(isNaN(step)){
                    throw '请为setFailedStep方法传递参数,且必须为数字!';
                }
                
                var nodeList = document.getElementById(this.id).children;
                
                for(var i = 0; i < step && i < nodeList.length; i++){
                    var childList = nodeList[i].children;
                    if(i == step - 1){
                        for(var n = 0; n < childList.length; n ++){
                            childList[n].className = childList[n].className + ' ' + 'failed';
                        }
                        return;
                    }
                    for(var n = 0; n < childList.length; n ++){
                        childList[n].className = childList[n].className + ' ' + 'done';
                    }
                }
            };
    
            return ProgressPoint;
        })();
    
        var pp = new ProgressPoint({id: 'progressPoint'});
        pp.setFailedStep(5);
    </script>
    </html>
  • 相关阅读:
    [刘阳Java]_什么是MyBatis_第1讲
    [刘阳Java]_斗胆介绍一下Eclipse快捷键大全[超详细]_第6讲
    [刘阳Java]_避开环境配置快速的使用Java的开发工具_第5讲
    [刘阳Java]_JVM工作流程_第4讲
    [刘阳Java]_Java程序员的成长路线_第3讲
    [刘阳Java]_Java环境搭建_第2讲
    使用node操作mongodb
    mongodb学习
    node多文件处理方法
    yarn工具的使用
  • 原文地址:https://www.cnblogs.com/ivehd/p/progressPoint.html
Copyright © 2011-2022 走看看