jQuery 手风琴(Accordion)是一种常见的网页交互效果,通常用于展示内容面板,用户可以通过点击标题来展开或折叠内容。二级菜单则是手风琴的一个扩展,允许在主菜单项下有子菜单项。
以下是一个简单的 jQuery 手风琴二级菜单的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery Accordion with Submenu</title>
<style>
.accordion {
width: 100%;
max-width: 600px;
margin: 20px auto;
}
.accordion-item {
border: 1px solid #ccc;
margin-bottom: 10px;
}
.accordion-header {
background-color: #f1f1f1;
padding: 10px;
cursor: pointer;
}
.accordion-content {
padding: 10px;
display: none;
}
.accordion-submenu {
margin-left: 20px;
}
</style>
</head>
<body>
<div class="accordion">
<div class="accordion-item">
<div class="accordion-header">Menu Item 1</div>
<div class="accordion-content">
<div class="accordion-submenu">
<div class="accordion-header">Submenu Item 1.1</div>
<div class="accordion-content">Content of Submenu Item 1.1</div>
</div>
<div class="accordion-submenu">
<div class="accordion-header">Submenu Item 1.2</div>
<div class="accordion-content">Content of Submenu Item 1.2</div>
</div>
</div>
</div>
<div class="accordion-item">
<div class="accordion-header">Menu Item 2</div>
<div class="accordion-content">
Content of Menu Item 2
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('.accordion-header').click(function() {
$(this).next('.accordion-content').slideToggle('fast');
$(this).parent().siblings().find('.accordion-content').slideUp('fast');
});
});
</script>
</body>
</html>
原因:可能是 jQuery 选择器或事件绑定有问题。
解决方法:确保 jQuery 库已正确加载,并且事件绑定正确。可以尝试使用 console.log
调试,查看事件是否触发。
$(document).ready(function() {
$('.accordion-header').click(function() {
console.log('Header clicked');
$(this).next('.accordion-content').slideToggle('fast');
$(this).parent().siblings().find('.accordion-content').slideUp('fast');
});
});
原因:可能是 CSS 动画效果在移动设备上性能不佳。
解决方法:可以尝试优化 CSS 动画效果,或者使用 JavaScript 动画库(如 GSAP)来替代 jQuery 的动画效果。
$(document).ready(function() {
$('.accordion-header').click(function() {
$(this).next('.accordion-content').toggleClass('active');
$(this).parent().siblings().find('.accordion-content').removeClass('active');
});
});
.accordion-content {
padding: 10px;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
.accordion-content.active {
max-height: 500px; /* 根据内容高度调整 */
transition: max-height 0.3s ease-in;
}
通过以上方法,可以有效地解决 jQuery 手风琴二级菜单中常见的问题,并优化用户体验。
没有搜到相关的沙龙