确定需求
首先,确定流程进度条的需求,包括显示步骤数量、当前进度、进度条颜色等。根据需求,将进度条分为若干等份,每个等份代表一个步骤。
HTML结构
根据上一步的需求,构建进度条的HTML结构,一般采用<ul>
标签嵌套<li>
标签的方式,每个<li>
代表一个步骤,根据步骤的完成情况设定不同的类名。
示例1:
<ul class="progress-bar">
<li class="step active">Step 1</li>
<li class="step">Step 2</li>
<li class="step">Step 3</li>
<li class="step">Step 4</li>
<li class="step">Step 5</li>
</ul>
active
类名。示例2:
.progress-bar {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
height: 20px;
border: 1px solid #999;
}
.step {
width: 20%;
height: 15px;
line-height: 15px;
text-align: center;
background-color: #f0f0f0;
border: 1px solid #999;
color: #999;
}
.step.active {
background-color: #399df7;
color: #fff;
border-color: #399df7;
}
.step.done {
background-color: #52c41a;
color: #fff;
border-color: #52c41a;
}
animate()
方法,将进度条宽度逐渐增加到当前步骤所在的位置。示例3:
// 获取步骤数量
var totalSteps = $('.step').length;
// 计算每个步骤的宽度
var stepWidth = 100 / totalSteps;
// 获取当前步骤的位置
var currentStep = $('.step.active').index();
// 每次完成一个步骤时,执行动画效果
$('.step.done').last().animate({
width: (currentStep + 1) * stepWidth + '%'
}, 500);
示例4:
// 点击未完成的步骤,进度条跳转至该步骤
$('.step:not(.done)').on('click', function() {
// 获取点击的步骤在所有步骤中的位置
var clickedStep = $(this).index();
// 计算进度条跳转的位置
var newPosition = clickedStep * stepWidth;
// 执行动画效果
$('.step.done').last().animate({
width: newPosition + '%'
}, 500);
// 将之后的步骤标记为未完成
$('.step').slice(clickedStep).removeClass('done');
});
以上是基于JS实现带动画效果的流程进度条的完整攻略及两个示例说明。