本文分享一个简洁实用的两级下拉菜单实现方案,结合CSS布局与JavaScript交互逻辑。鼠标悬停即可展开二级菜单,代码经过精简优化,去除了冗余部分,兼容性问题已改善。文章提供运行截图、在线演示链接及完整HTML/CSS/JS源码,适合需要快速集成基础导航功能的开发者参考。
JavaScript下拉菜单实现概述
本文详细介绍了一种简单且实用的JavaScript下拉菜单实现方法。
该示例展示了一个功能完善的JS下拉菜单,当鼠标悬停在菜单项上时,会自动显示对应的二级菜单。此方案源自网络资源的整理与优化,经过多次修改去除了冗余代码,使整体结构更加简洁。测试表明,该两级下拉菜单在代码兼容性方面表现良好,主要依赖CSS进行样式布局,JavaScript处理交互逻辑,整体实现既简洁又实用。
具体运行效果如下图所示:

如需查看实际运行效果,可访问以下在线演示地址:
http://demo.jb51.net/js/2015/js-css-down-show-menu-codes/
完整代码示例
以下是实现该功能的具体代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>JavaScript下拉菜单</title>
<style type="text/css">
* {
padding:0;
margin:0;
}
body {
font-family:verdana, sans-serif;
font-size:14px; background-color:#000;
}
#navigation, #navigation li ul {
list-style-type:none;
}
#navigation {
}
#navigation li {
float:left;
text-align:center;
position:relative;
}
#navigation li a:link, #navigation li a:visited {
display:block;
text-decoration:none;
color:#fff;
width:82px;
height:40px;
line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#255f9e;
padding-left:10px;
}
#navigation li a:hover {
color:#fff;
background:#ffb100;
}
#navigation li ul li a:hover {
color:#fff;
background:#ffb100
}
#navigation li ul {
display:none;
position:absolute;
top:40px;
margin-top:1px;
font-size:12px;
}
</style>
<script type="text/javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<ul id="navigation">
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">菜单1</a>
<ul>
<li><a href="#">菜单1</a></li>
<li><a href="#">菜单1</a></li>
<li><a href="#">菜单1</a></li>
<li><a href="#">菜单1</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">菜单2</a>
<ul>
<li><a href="#">栏目2</a></li>
<li><a href="#">栏目2</a></li>
<li><a href="#">栏目2</a></li>
<li><a href="#">栏目2</a></li>
<li><a href="#">栏目2</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">菜单3</a>
<ul>
<li><a href="#">菜单3</a></li>
<li><a href="#">菜单3</a></li>
<li><a href="#">菜单3</a></li>
<li><a href="#">菜单3</a></li>
<li><a href="#">菜单3</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">菜单4</a>
<ul>
<li><a href="#">菜单4</a></li>
<li><a href="#">菜单4</a></li>
<li><a href="#">菜单4</a></li>
<li><a href="#">菜单4</a></li>
<li><a href="#">菜单4</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目5</a>
<ul>
<li><a href="#">菜单5</a></li>
<li><a href="#">菜单5</a></li>
<li><a href="#">菜单5</a></li>
<li><a href="#">菜单5</a></li>
<li><a href="#">菜单5</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目6</a>
<ul>
<li><a href="#">菜单6</a></li>
<li><a href="#">菜单6</a></li>
<li><a href="#">菜单6</a></li>
<li><a href="#">菜单6</a></li>
<li><a href="#">菜单6</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目7</a>
<ul>
<li><a href="#">菜单7</a></li>
<li><a href="#">菜单7</a></li>
<li><a href="#">菜单7</a></li>
<li><a href="#">菜单7</a></li>
<li><a href="#">菜单7</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目8</a>
<ul>
<li><a href="#">菜单8</a></li>
<li><a href="#">菜单8</a></li>
<li><a href="#">菜单8</a></li>
<li><a href="#">菜单8</a></li>
<li><a href="#">菜单8</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目09</a>
<ul>
<li><a href="#">菜单9</a></li>
<li><a href="#">菜单9</a></li>
<li><a href="#">菜单9</a></li>
<li><a href="#">菜单9</a></li>
<li><a href="#">菜单9</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目10</a>
<ul>
<li><a href="#">菜单10</a></li>
<li><a href="#">菜单10</a></li>
<li><a href="#">菜单10</a></li>
<li><a href="#">菜单10</a></li>
<li><a href="#">菜单10</a></li>
</ul>
</li><li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">栏目11</a>
<ul>
<li><a href="#">菜单11</a></li>
<li><a href="#">菜单11</a></li>
<li><a href="#">菜单11</a></li>
<li><a href="#">菜单11</a></li>
<li><a href="#">菜单11</a></li>
</ul>
</li>
</li>
</ul>
</li>
</ul>
</body>
</html>
希望本文提供的代码示例能对读者的JavaScript程序设计工作有所帮助。