手风琴切换是一种常见的网页交互效果,用户点击某个元素时,该元素会展开显示更多内容,同时其他元素会收缩隐藏。水平手风琴切换则是将这种效果应用于水平排列的元素上。
以下是一个使用jQuery实现水平手风琴切换的简单示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Horizontal Accordion</title>
<style>
.accordion {
display: flex;
overflow: hidden;
}
.accordion-item {
flex: 1;
transition: flex 0.3s ease;
position: relative;
border: 1px solid #ccc;
margin-right: 10px;
}
.accordion-item:last-child {
margin-right: 0;
}
.accordion-item.active {
flex: 3;
}
.accordion-content {
padding: 10px;
display: none;
}
.accordion-content.active {
display: block;
}
</style>
</head>
<body>
<div class="accordion">
<div class="accordion-item" data-target="content1">
<h3>Item 1</h3>
<div class="accordion-content" id="content1">
Content for Item 1
</div>
</div>
<div class="accordion-item" data-target="content2">
<h3>Item 2</h3>
<div class="accordion-content" id="content2">
Content for Item 2
</div>
</div>
<div class="accordion-item" data-target="content3">
<h3>Item 3</h3>
<div class="accordion-content" id="content3">
Content for Item 3
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('.accordion-item').click(function() {
var target = $(this).data('target');
$('.accordion-item').removeClass('active');
$('.accordion-content').removeClass('active');
$(this).addClass('active');
$('#' + target).addClass('active');
});
});
</script>
</body>
</html>
问题1:点击后没有反应
<script>
标签是否正确引入jQuery库,并确保选择器与HTML结构匹配。问题2:切换效果不流畅
transform: translateZ(0)
),并简化JavaScript逻辑。问题3:多个元素同时展开
通过以上步骤,可以有效实现并优化水平手风琴切换效果。
领取专属 10元无门槛券
手把手带您无忧上云