• 简单实用的进度条、时间轴


      这是个啥?

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

      这个进度条用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>
  • 相关阅读:
    day03—JavaScript中DOM的Event事件方法
    day02-Javascript之document.write()方法
    day01-JavaScript中"Uncaught TypeError: Cannot set property 'innerHTML' of null"错误
    Linux安装Tomcat8
    CentOS7安装jdk8及环境变量配置
    Linux命令之lsof
    java如何停止一个运行的线程?
    大数据技术之Hadoop(HDFS)
    大数据技术之Hadoop入门
    用word2013 把word 文档发送到博客园
  • 原文地址:https://www.cnblogs.com/ivehd/p/progressPoint.html
Copyright © 2020-2023  润新知