竖向折叠二级下拉菜单是一种常见的网页导航设计,它允许用户通过点击主菜单项来展开或折叠其子菜单项。这种设计有助于节省页面空间,并提高用户体验。
以下是一个简单的JavaScript实现竖向折叠二级下拉菜单的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vertical Accordion Menu</title>
<style>
body {
font-family: Arial, sans-serif;
}
.menu {
width: 200px;
}
.menu-item {
border: 1px solid #ccc;
margin-bottom: 5px;
}
.submenu {
display: none;
padding-left: 20px;
}
.submenu.open {
display: block;
}
</style>
</head>
<body>
<div class="menu">
<div class="menu-item" onclick="toggleSubmenu(this)">
Menu 1
<div class="submenu">
<a href="#">Submenu 1.1</a>
<a href="#">Submenu 1.2</a>
</div>
</div>
<div class="menu-item" onclick="toggleSubmenu(this)">
Menu 2
<div class="submenu">
<a href="#">Submenu 2.1</a>
<a href="#">Submenu 2.2</a>
</div>
</div>
</div>
<script>
function toggleSubmenu(menuItem) {
const submenu = menuItem.querySelector('.submenu');
submenu.classList.toggle('open');
}
</script>
</body>
</html>
原因:可能是JavaScript代码中切换类名的逻辑有问题。
解决方法:确保toggleSubmenu
函数正确地切换了.open
类。
function toggleSubmenu(menuItem) {
const submenu = menuItem.querySelector('.submenu');
submenu.classList.toggle('open');
}
原因:点击事件冒泡导致父元素的事件也被触发。
解决方法:在子菜单项上阻止事件冒泡。
<div class="submenu">
<a href="#" onclick="event.stopPropagation()">Submenu 1.1</a>
<a href="#" onclick="event.stopPropagation()">Submenu 1.2</a>
</div>
通过以上方法,可以有效实现和管理竖向折叠二级下拉菜单的功能。
领取专属 10元无门槛券
手把手带您无忧上云