JQuery步骤条

时间:2024-02-25 15:44:53

JQuery步骤条

在做项目的时候需要一个步骤条,来根据订单的状态显示不同的信息。

首先是在GitHub上找到了一个开源的JQuery步骤条组件。(git地址:https://github.com/mateagar/progressStep

1. 下载源代码

在这里插入图片描述

2. 将代码代码导入项目中

样式如下:
在这里插入图片描述

3. 修改源代码

由于和我的项目要求有些不同因此要对组件的css样式和js代码进行修改。将该组件修改成根据状态判断节点位置的形式。

(1)修改步骤栏的大小
修改在目录 progressStep-master\demo\stylesheets 下的style.css中的样式。将步骤栏设置为100%宽, 105px高。

p {
  font-family: Helvetica, Arial, sans-serif;
  font-weight: lighter;
}

button {
  font-family: Helvetica, Arial, sans-serif;
  font-size: 1.0em;
}

div#progressBar {
  width: 100%;
  height: 105px;
}

(2) 修改js
修改progressStep-master\demo目录下的index.html 中的js代码。编写js函数,根据传入函数的num值让步骤条显示不同的步骤。

//获取步骤条
function getStepBar(num) {
  var $progressDiv = $("#progressBar");
  var $progressBar = $progressDiv.progressStep();
  $progressBar.addStep("待审核");
  $progressBar.addStep("审批通过");
  $progressBar.addStep("待发货");
  $progressBar.addStep("已发货");
  $progressBar.addStep("完成");

  $progressBar.refreshLayout();
  startLoop(num);
  //开始循环
  var counter = 0;
  var intervalId = null;
  function startLoop(num) {
    if (intervalId) {
      // continue
    }
    else {
      intervalId = setInterval(function () {
        $progressBar.setCurrentStep(counter);
        if (num == counter) {
          stopLoop();
          return;
        }
        counter++;
        if (counter > 4) {
          counter = 0;
        }
      }, 500);
    }
  }
  //停止循环
  function stopLoop() {
    if (intervalId) {
      clearInterval(intervalId);
      intervalId = null;
    }
  }
}