在JavaScript中实现二级导航菜单通常涉及到DOM操作和事件监听。以下是一个简单的示例,展示了如何使用原生JavaScript来创建一个响应式的二级导航菜单。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>二级导航菜单</title>
<style>
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
position: relative;
}
.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
}
li:hover > .submenu {
display: block;
}
</style>
</head>
<body>
<ul class="menu">
<li><a href="#">首页</a></li>
<li>
<a href="#">产品</a>
<ul class="submenu">
<li><a href="#">产品1</a></li>
<li><a href="#">产品2</a></li>
<li><a href="#">产品3</a></li>
</ul>
</li>
<li><a href="#">关于我们</a></li>
</ul>
<script>
// JavaScript代码可以用来添加动态功能,例如根据用户交互显示/隐藏子菜单
document.addEventListener('DOMContentLoaded', function() {
var menuItems = document.querySelectorAll('.menu > li');
menuItems.forEach(function(item) {
item.addEventListener('mouseenter', function() {
var submenu = this.querySelector('.submenu');
if (submenu) {
submenu.style.display = 'block';
}
});
item.addEventListener('mouseleave', function() {
var submenu = this.querySelector('.submenu');
if (submenu) {
submenu.style.display = 'none';
}
});
});
});
</script>
</body>
</html>
:hover
伪类和JavaScript事件监听之间的冲突。确保两者不会相互干扰。通过上述代码和解释,你应该能够理解如何在JavaScript中实现一个基本的二级导航菜单,并且知道如何解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云