),用于导航到特定页面或部分。子菜单项也将包含链接,但它们将被隐藏,直到用户将鼠标悬停在主菜单项上。
<ul id="main-menu">
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a>
<ul class="sub-menu">
<li><a href="#">Our Team</a></li>
<li><a href="#">Our Mission</a></li>
<li><a href="#">Our Values</a></li>
</ul>
</li>
<li><a href="#">Services</a>
<ul class="sub-menu">
<li><a href="#">Web Design</a></li>
<li><a href="#">SEO</a></li>
<li><a href="#">Social Media Marketing</a></li>
</ul>
</li>
<li><a href="#">Contact Us</a></li>
</ul>
CSS 样式
接下来,我们需要使用 CSS 来定义级联菜单的样式。我们将使用 CSS 选择器来定位不同的菜单元素,并设置它们的样式。例如,我们可以使用以下 CSS 规则来设置主菜单项的样式:
#main-menu li {
display: inline-block;
margin-right: 10px;
}
#main-menu li a {
text-decoration: none;
color: #000;
}
我们可以使用类似的 CSS 规则来设置子菜单项的样式,以及控制子菜单的显示和隐藏。
.sub-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
}
.sub-menu li {
display: block;
}
.sub-menu li a {
text-decoration: none;
color: #000;
}
#main-menu li:hover .sub-menu {
display: block;
}
JavaScript 代码
最后,我们需要使用 JavaScript 来控制级联菜单的行为。我们将使用 JavaScript 来添加事件监听器,以便当用户将鼠标悬停在主菜单项上时,子菜单就会展开。我们还可以使用 JavaScript 来添加额外的功能,例如在子菜单项上显示箭头图标或更改子菜单的背景颜色。
const mainMenuItems = document.querySelectorAll('#main-menu li');
mainMenuItems.forEach((item) => {
item.addEventListener('mouseover', () => {
const subMenu = item.querySelector('.sub-menu');
subMenu.style.display = 'block';
});
item.addEventListener('mouseout', () => {
const subMenu = item.querySelector('.sub-menu');
subMenu.style.display = 'none';
});
});
结论
通过遵循本教程,您已经学会了如何使用原生 JavaScript 创建一个可自定义的级联菜单。该菜单完全由您自己控制,您可以根据自己的喜好对其进行自定义。您可以更改菜单项的样式、添加额外的功能,甚至可以创建具有多个级别的子菜单。