Javascript 如何处理html5中的向导进度条?

Javascript 如何处理html5中的向导进度条?,javascript,css,html,progress-bar,wizard,Javascript,Css,Html,Progress Bar,Wizard,我想实现基于前进和后退的分段进度条动画 假设我有四个部分,每个部分都有前进和后退按钮,在第1部分填写详细信息后单击下一步增加进度条25%,现在转到第2部分填写后单击下一步它应该增加50% 在第2节的相同情况下,我有前进和后退按钮,如果我从第2节单击后退,它将转到第1节,同时进度条也需要减少25%,对于这种情况,是否有任何预定义的库可用,或者是否有更好的方法来处理此问题 <div class="row hidden-xs name-progress-bar" style="margin-t

我想实现基于前进和后退的分段进度条动画

假设我有四个部分,每个部分都有前进和后退按钮,在第1部分填写详细信息后单击下一步增加进度条25%,现在转到第2部分填写后单击下一步它应该增加50%

在第2节的相同情况下,我有前进和后退按钮,如果我从第2节单击后退,它将转到第1节,同时进度条也需要减少25%,对于这种情况,是否有任何预定义的库可用,或者是否有更好的方法来处理此问题

 <div class="row hidden-xs name-progress-bar" style="margin-top:-15px">
                    <div class="col-md-12">
                        <div class="progress" id="progress1">
                            <div class="progress-bar" data-progress1 = "0" id="myBar" role="progressbar"  aria-valuemin="0" aria-valuemax="100">
                            </div>
                        </div>
                        <div class="progress" id="progress2">
                            <div class="progress-bar2" data-progress2 = "0" id="myBar2" role="progressbar"  aria-valuemin="0" aria-valuemax="100">
                            </div>
                        </div>
                    </div>
                    <div class="progress-group col-md-12">
                        <div class="custom-name-progress-bar" [style.width.%]="constWidth" *ngFor="let configData of progressBarConfig | objectToArray">
                            <button class="progress-button">{{configData.name}}</button>
                        </div>
                    </div>
                </div>
我有两个进度条上是活跃的和竞争的两种不同的颜色

返回并继续

//HTML
青蒿素、金樱子、天妇罗、金樱子a、金樱子。库拉比图尔nec arcu。我坐在阿梅特·莫里斯旁边。这是一个很好的例子。埃蒂亚姆·阿利奎特·马萨和洛雷姆。毛里斯·达比乌斯·拉库斯·奥克托·里苏斯。埃涅亚临时乌拉姆科珀狮子座。维瓦摩斯·塞德·马格纳·奎斯·利古拉·埃利弗德·阿迪皮斯。杜伊斯·奥奇。苏打水煎饼或同侧生命。阿利奎姆·努拉。我是阿利奎姆·莫莱斯蒂·埃拉特。这是一种新的葡萄品种。这是我的梦想。同侧相位。努克·特里斯蒂克·坦普斯·莱克图斯

青蒿素、金樱子、天妇罗、金樱子a、金樱子。库拉比图尔nec arcu。我坐在阿梅特·莫里斯旁边。这是一个很好的例子。埃蒂亚姆·阿利奎特·马萨和洛雷姆。毛里斯·达比乌斯·拉库斯·奥克托·里苏斯。埃涅亚临时乌拉姆科珀狮子座。维瓦摩斯·塞德·马格纳·奎斯·利古拉·埃利弗德·阿迪皮斯。杜伊斯·奥奇。苏打水煎饼或同侧生命。阿利奎姆·努拉。我是阿利奎姆·莫莱斯蒂·埃拉特。这是一种新的葡萄品种。这是我的梦想。同侧相位。努克·特里斯蒂克·坦普斯·莱克图斯

青蒿素、金樱子、天妇罗、金樱子a、金樱子。库拉比图尔nec arcu。我坐在阿梅特·莫里斯旁边。这是一个很好的例子。埃蒂亚姆·阿利奎特·马萨和洛雷姆。毛里斯·达比乌斯·拉库斯·奥克托·里苏斯。埃涅亚临时乌拉姆科珀狮子座。维瓦摩斯·塞德·马格纳·奎斯·利古拉·埃利弗德·阿迪皮斯。杜伊斯·奥奇。苏打水煎饼或同侧生命。阿利奎姆·努拉。我是阿利奎姆·莫莱斯蒂·埃拉特。这是一种新的葡萄品种。这是我的梦想。同侧相位。努克·特里斯蒂克·坦普斯·莱克图斯

青蒿素、金樱子、天妇罗、金樱子a、金樱子。库拉比图尔nec arcu。我坐在阿梅特·莫里斯旁边。这是一个很好的例子。埃蒂亚姆·阿利奎特·马萨和洛雷姆。毛里斯·达比乌斯·拉库斯·奥克托·里苏斯。埃涅亚临时乌拉姆科珀狮子座。维瓦摩斯·塞德·马格纳·奎斯·利古拉·埃利弗德·阿迪皮斯。杜伊斯·奥奇。苏打水煎饼或同侧生命。阿利奎姆·努拉。我是阿利奎姆·莫莱斯蒂·埃拉特。这是一种新的葡萄品种。这是我的梦想。同侧相位。努克·特里斯蒂克·坦普斯·莱克图斯

返回 储蓄及;继续 //剧本 $(函数(){ $(“#制表符”).tabs(); var countOfTabs=$(“#tabs li”).长度; var slotValue=100/countOfTabs; $(“#保存继续”)。在(“单击”,函数()上){ var currentTab=$(“#tabs”).tabs('option','active'); currentTab++; $(“#制表符”)。制表符({ 活动:当前选项卡 }); 如果(currentTab==0){ currentTab=1; }
对于(i=1;i如何动态实现这一点,我可以根据需要增加/减少的内容添加和删除选项卡,也可以只使用一个按钮而不是四个按钮@krishna9960
 static activeProgressBar(){
        var total = 4;
        var current = parseInt(jQuery('.page-heading-mobile').attr('data-step'));
        var average  = (current/total)*100
        //var average = (100/totalSection);
        var active= parseInt(jQuery('.progress-bar').attr('data-progress1'));
        active = active + average;
        var activePercent = active + '%';
        var progress = jQuery('.progress-bar');
        jQuery('.progress-bar').attr('data-progress1',active);
        progress.css('width',activePercent);
    }

    static completedProgressBar(){
        var total = 4;    
        var current = parseInt(jQuery('.page-heading-mobile').attr('data-step'));
        var average  = (current/total)*100
        //var average = (100/totalSection);
        var active = parseInt(jQuery('.progress-bar2').attr('data-progress2'));
        active = active + average;
        var activePercent = active + '%';
        var progress = jQuery('.progress-bar2');
        jQuery('.progress-bar2').attr('data-progress2',active);
        progress.css('width',activePercent);
    }
//HTML    

<progress max="100" value="0" id="progressBar"></progress>
    <div id="tabs">
    <ul>
      <li><a href="#tabs-1">Nunc tincidunt</a></li>
      <li><a href="#tabs-2">Proin dolor</a></li>
      <li><a href="#tabs-3">Aenean lacinia</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>

    </ul>
    <div id="tabs-1">
      <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
    </div>
    <div id="tabs-2">
      <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
    </div>
    <div id="tabs-3">
      <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>

    </div>
    <div id="tabs-4">
      <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>

    </div>

    <div class="button-container">
      <button id="back">Back</button>
      <button id="saveContinue">Save &amp; Continue</button>
    </div>
    </div>

//Script

$(function() {
  $("#tabs").tabs();
  var countOfTabs = $("#tabs li").length;
  var slotValue = 100/countOfTabs;

  $("#saveContinue").on("click", function() {
    var currentTab = $("#tabs").tabs('option', 'active');
    currentTab++;
    $("#tabs").tabs({
          active: currentTab 
      });

       if(currentTab==0){
            currentTab = 1;
          }
      for(i=1;i<=currentTab;i++){
        if(i==currentTab){

          var finalVal = slotValue*i;
            $("#progressBar").attr("value", finalVal);
        }
      }

  });

  $("#back").on("click", function() {
  var currentTab = $("#tabs").tabs('option', 'active');

      if(currentTab==0){
        $("#progressBar").attr("value", "0");
      }else{
        $("#tabs").tabs({
          active: currentTab - 1
        });
      }
        for(i=1;i<=currentTab;i++){
        if(i==currentTab){
         i--;
          var finalVal = slotValue*i;
            $("#progressBar").attr("value", finalVal);
            break;
        }
      }

  });



});

//CSS

  .button-container{text-align: center;}
#progressBar{
  width: 100%;
}