在JavaScript中实现二级菜单的点击效果,通常涉及到HTML结构、CSS样式和JavaScript事件处理。以下是一个基本的实现示例:
<ul class="menu">
<li>
<a href="#">菜单1</a>
<ul class="submenu">
<li><a href="#">子菜单1-1</a></li>
<li><a href="#">子菜单1-2</a></li>
</ul>
</li>
<li>
<a href="#">菜单2</a>
<ul class="submenu">
<li><a href="#">子菜单2-1</a></li>
<li><a href="#">子菜单2-2</a></li>
</ul>
</li>
</ul>
.menu {
list-style: none;
padding: 0;
}
.menu > li {
position: relative;
}
.menu > li > a {
display: block;
padding: 10px;
text-decoration: none;
color: #333;
}
.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
border: 1px solid #ccc;
list-style: none;
padding: 0;
min-width: 150px;
}
.submenu li a {
display: block;
padding: 10px;
text-decoration: none;
color: #333;
}
.submenu li a:hover {
background-color: #f0f0f0;
}
document.addEventListener('DOMContentLoaded', function() {
const menuItems = document.querySelectorAll('.menu > li');
menuItems.forEach(function(item) {
item.addEventListener('click', function(event) {
event.stopPropagation();
const submenu = this.querySelector('.submenu');
if (submenu) {
submenu.style.display = submenu.style.display === 'block' ? 'none' : 'block';
}
});
});
// 点击页面其他地方时隐藏所有子菜单
document.addEventListener('click', function() {
const submenus = document.querySelectorAll('.submenu');
submenus.forEach(function(submenu) {
submenu.style.display = 'none';
});
});
});
event.stopPropagation()
防止事件冒泡到文档,避免点击主菜单项时立即触发文档的点击事件。这种二级菜单的实现方式广泛应用于网站导航栏,特别是在需要展示更多选项而不占用过多页面空间的情况下。
.submenu
的display
属性。<a>
标签中添加href="#"
,并在JavaScript中阻止默认行为(如上例所示)。通过以上步骤,你可以实现一个基本的二级菜单点击效果,并根据需要进行调整和扩展。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云