在JavaScript中制作二级菜单栏通常涉及HTML、CSS和JavaScript三个部分。下面是一个简单的示例,展示了如何创建一个基本的二级菜单栏。
首先,我们需要一个基本的HTML结构来定义菜单和子菜单。
<nav>
<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>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
接下来,使用CSS来设计菜单的样式,并确保子菜单默认是隐藏的。
nav ul {
list-style: none;
padding: 0;
}
nav ul.menu > li {
display: inline-block;
position: relative;
}
nav ul.menu > li > a {
display: block;
padding: 10px 20px;
text-decoration: none;
}
nav ul.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
border: 1px solid #ccc;
min-width: 150px;
}
nav ul.submenu li {
display: block;
}
nav ul.submenu li a {
padding: 10px 20px;
}
nav ul.menu > li:hover > .submenu {
display: block;
}
虽然上面的CSS已经实现了基本的二级菜单功能(通过:hover
伪类),但有时我们可能需要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';
}
});
});
});
通过上述步骤,你可以创建一个基本的二级菜单栏,并根据需要进行进一步的定制和优化。
领取专属 10元无门槛券
手把手带您无忧上云