jQuery Step 效果是一种用于创建分步表单或向导的UI组件。它允许用户通过多个步骤逐步完成一个流程,每个步骤显示不同的内容和表单字段。以下是关于jQuery Step效果的基础概念、优势、类型、应用场景以及常见问题及解决方法。
以下是一个简单的jQuery Step效果的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery Step Wizard</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<style>
.stepwizard-step p {
margin-top: 10px;
}
.stepwizard-row {
display: table-row;
}
.stepwizard {
display: table;
width: 100%;
position: relative;
}
.stepwizard-step button[disabled] {
opacity: 1 !important;
filter: alpha(opacity=100) !important;
}
.stepwizard-row:before {
top: 14px;
bottom: 0;
position: absolute;
content: " ";
width: 100%;
height: 1px;
background-color: #ccc;
z-index: 0;
}
.stepwizard-step {
display: table-cell;
text-align: center;
position: relative;
}
.btn-circle {
width: 30px;
height: 30px;
text-align: center;
padding: 6px 0;
font-size: 12px;
line-height: 1.428571429;
border-radius: 15px;
}
</style>
</head>
<body>
<div class="container">
<div class="stepwizard">
<div class="stepwizard-row">
<div class="stepwizard-step">
<button type="button" class="btn btn-primary btn-circle">1</button>
<p>Step 1</p>
</div>
<div class="stepwizard-step">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">2</button>
<p>Step 2</p>
</div>
<div class="stepwizard-step">
<button type="button" class="btn btn-default btn-circle" disabled="disabled">3</button>
<p>Step 3</p>
</div>
</div>
</div>
<form role="form">
<div class="tab-content">
<div class="tab-pane active" role="tabpanel" id="step1">
<h3>Step 1</h3>
<p>This is step 1</p>
<button type="button" class="btn btn-primary next-step">Next</button>
</div>
<div class="tab-pane" role="tabpanel" id="step2">
<h3>Step 2</h3>
<p>This is step 2</p>
<button type="button" class="btn btn-secondary prev-step">Previous</button>
<button type="button" class="btn btn-primary next-step">Next</button>
</div>
<div class="tab-pane" role="tabpanel" id="step3">
<h3>Step 3</h3>
<p>This is step 3</p>
<button type="button" class="btn btn-secondary prev-step">Previous</button>
<button type="submit" class="btn btn-success">Submit</button>
</div>
</div>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script>
$(document).ready(function () {
var navListItems = $('div.stepwizard-row').find('a');
var allWells = $('.tab-content').find('.tab-pane');
var allNextBtn = $('.next-step');
allWells.hide();
navListItems.click(function (e) {
e.preventDefault();
var $target = $($(this).attr('href'));
if (!$target.hasClass('active')) {
navListItems.removeClass('btn-primary').addClass('btn-default');
$(this).removeClass('btn-default').addClass('btn-primary');
allWells.removeClass('active');
$target.addClass('active');
}
});
allNextBtn.click(function () {
var curStep = $(this).closest('.tab-pane');
var curStepBtn = curStep.attr('id');
var nextStepBtn = $('div.stepwizard-row').find('.btn-primary').attr('href');
curStep.removeClass('active');
$(nextStepBtn).addClass('active');
$('div.stepwizard-row').find('.btn-primary').removeClass('btn-primary').addClass('btn-default');
$('div.stepwizard-row').find('[href="' + nextStepBtn + '"]').removeClass('btn-default').addClass('btn-primary');
});
$('.prev-step').click(function () {
var curStep = $(this).closest('.tab-pane');
var curStepBtn = curStep.attr('id');
var prevStepBtn = $('div.stepwizard-row').find('.btn-primary').attr('href');
curStep.removeClass('active');
$(prevStepBtn).addClass('active');
$('div.stepwizard-row').find('.btn-primary').removeClass('btn-primary').addClass('btn-default');
$('div.stepwizard-row').find('[href="' + prevStepBtn + '"]').removeClass('btn-default').addClass('btn-primary');
});
});
</script>
</body>
</html>
href
属性匹配,并且JavaScript逻辑正确处理了步骤切换。通过以上信息,你应该能够更好地理解和实现jQuery Step效果,并解决常见的实现问题。
领取专属 10元无门槛券
手把手带您无忧上云