js 实现进度条

1.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{ margin: 0;  padding: 0;list-style:none;}
        .div{width: 800px;min-height: 400px;margin: 20px auto;border: 1px solid red}
        .head ul{ overflow: hidden; width: 720px; margin: 0 auto;}
        .head li{ float: left;  min-width: 144px;position: relative;}
        .head li.active .num{ border-color: #0095ff;color: #00BCD4;}
        .head li.active:after{ background-color:#0095ff;}
        .head li:after{content: '';display: block; position: absolute;left: 44px; top: 20px; width: 100px;
            height: 3px;background-color: #ccc;}
        .head li:nth-of-type(5):after{content: none; }
        .head .num{width: 40px; height: 40px;text-align: center;line-height: 40px; border: 3px solid #ccc;border-radius: 50%;color:#333;font-size: 20px;}
        .head .txt{ width: 100%; font-size: 13px; color: #8BC34A;line-height: 27px;}
        .content{width: 100%;height: 250px;}
        .content div{width:100%;height:100%;background-color: #ccd8d8;display: none; }
    </style>
</head>
<body>
    <div class="div">
        <div class="head">
            <ul>
                <li class="active">
                    <div class="num">✔</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">2</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">3</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">4</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">5</div>
                    <div class="txt">基本数据</div>
                </li>
            </ul>
        </div>
        <div class="content">
            <div style="display: block">
                111
            </div>
            <div>
                222
            </div>
            <div>
                333
            </div>
            <div>
                444
            </div>
            <div>
                555
            </div>
        </div>
        <div class="'footer">
            <input type="button" value="上一步">
            <input type="button" value="下一步">
        </div>
    </div>

    <script>
        var  aInp=document.getElementsByTagName('input');
        var  oContent=document.getElementsByClassName('content')[0];
        var  aDiv=oContent.getElementsByTagName('div');
        var  oHead=document.getElementsByClassName('head')[0];
        var  aNum=oHead.getElementsByClassName('num');

        var  aLi=oHead.getElementsByTagName('li');

        var  iNow=0;
        var  oldLi=aLi[0]
        var oldDiv=aDiv[0];
        var oldNum=aNum[0];
        aInp[1].onclick=function(){
            next(0)
        };
        aInp[0].onclick=function(){
            next(1)
        };
        function next(flag){
            if(flag){
                if(aInp[1].value=='完成'){
                    aInp[1].value='下一步'
                }


                if(iNow<=0){
                    return false;
                }
                aNum[iNow].innerText=iNow+1+''
                iNow--;
                oldLi.className=''


            }else{
                if(iNow==aLi.length-2){

                    aInp[1].value='完成'
                }


                if(iNow==aLi.length-1){
                    return false;
                }
                iNow++;

                aNum[iNow].innerText=''
            }


            oldDiv.style.display='none'
            aLi[iNow].className='active';
            aDiv[iNow].style.display='block';
            oldLi=aLi[iNow];
            oldDiv=aDiv[iNow];
            oldNum=aNum[iNow]

        }


    </script>

</body>
</html>

 2.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{ margin: 0;  padding: 0;list-style:none;}
        .div{width: 800px;min-height: 400px;margin: 20px auto;border: 1px solid red}
        .head ul{ overflow: hidden; width: 720px; margin: 0 auto;}
        .head li{ float: left;  min-width: 144px;position: relative;}
        .head li.active .num{ border-color: #0095ff;color: #00BCD4;}
        .head li.active:after{ background-color:#0095ff;}
        .head li:after{content: '';display: block; position: absolute;left: 44px; top: 20px; width: 100px;
            height: 3px;background-color: #ccc;}
        .head li:nth-of-type(5):after{content: none; }
        .head .num{width: 40px; height: 40px;text-align: center;line-height: 40px; border: 3px solid #ccc;border-radius: 50%;color:#333;font-size: 20px;}
        .head .txt{ width: 100%; font-size: 13px; color: #8BC34A;line-height: 27px;}
        .content{width: 100%;height: 250px;}
        .content div{width:100%;height:100%;background-color: #ccd8d8;display: none; }
    </style>
</head>
<body>
    <div class="div">
        <div class="head">
            <ul>
                <li class="active">
                    <div class="num">✔</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">2</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">3</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">4</div>
                    <div class="txt">基本数据</div>
                </li>
                <li>
                    <div class="num">5</div>
                    <div class="txt">基本数据</div>
                </li>
            </ul>
        </div>
        <div class="content">
            <div style="display: block">
                111
            </div>
            <div>
                222
            </div>
            <div>
                333
            </div>
            <div>
                444
            </div>
            <div>
                555
            </div>
        </div>
        <div class="'footer">
            <input type="button" value="上一步">
            <input type="button" value="下一步">
        </div>
    </div>

    <script>
     /*   var  aInp=document.getElementsByTagName('input');
        var  oContent=document.getElementsByClassName('content')[0];
        var  aDiv=oContent.getElementsByTagName('div');
        var  oHead=document.getElementsByClassName('head')[0];
        var  aNum=oHead.getElementsByClassName('num');

        var  aLi=oHead.getElementsByTagName('li');

        var  iNow=0;
        var  oldLi=aLi[0]
        var oldDiv=aDiv[0];
        var oldNum=aNum[0];
        aInp[1].onclick=function(){
            next(0)
        };
        aInp[0].onclick=function(){
            next(1)
        };
        function next(flag){
            if(flag){
                if(aInp[1].value=='完成'){
                    aInp[1].value='下一步'
                }


                if(iNow<=0){
                    return false;
                }
                aNum[iNow].innerText=iNow+1+''
                iNow--;
                oldLi.className=''


            }else{
                if(iNow==aLi.length-2){

                    aInp[1].value='完成'
                }


                if(iNow==aLi.length-1){
                    return false;
                }
                iNow++;

                aNum[iNow].innerText='✔'
            }


            oldDiv.style.display='none'
            aLi[iNow].className='active';
            aDiv[iNow].style.display='block';
            oldLi=aLi[iNow];
            oldDiv=aDiv[iNow];
            oldNum=aNum[iNow]

        }*/


        function $$(elem,select){ //$$('.div')
            if(arguments.length==1){
                select=elem;
                elem=document;
            }
            if(select.charAt(0)=='.'){
                return elem.getElementsByClassName(select.substring(1))
            }else{
                return elem.getElementsByTagName(select)
            }
        }

     var  aInp=$$('input');
     var  oContent=$$('.content')[0];
     var  aDiv=$$(oContent,'div');
     var  oHead=$$('.head')[0];
     var  aNum=$$(oHead,'.num');
     var  aLi=$$(oHead,'li');

    var  iNow=0;
     aInp[1].onclick=function(){
         change(1)
     }
     aInp[0].onclick=function(){
         change(0)
     }
      function  change(flag){
          if(flag){

              if(iNow<aLi.length-1) {

                  iNow++;
                  aLi[iNow].className='active'
                  aNum[iNow].innerText=''

                  if(iNow==aLi.length-1){
                      aInp[1].value='完成'
                  };
              }


          }else{
              if(iNow==0) return false;
              iNow--;
              aLi[iNow+1].className=''

              aNum[iNow+1].innerText=iNow+2
              if(iNow>=0){
                  aInp[1].value='下一步'
              };
          }



          for(var k=0;k<aLi.length;k++){
              aDiv[k].style.display='none'
          }
          aDiv[iNow].style.display='block'

      }

    </script>

</body>
</html>

 

posted @ 2018-05-10 14:20  small-match  阅读(240)  评论(0)    收藏  举报