本文提供了一段基于 HTML、CSS 和 JavaScript 的下拉菜单实现代码。该示例展示了如何构建包含多级子菜单的导航结构,并通过事件处理实现鼠标悬停显示与隐藏菜单的功能。
JavaScript 下拉菜单实现代码
<!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:small; } #navigation, #navigation li ul { list-style-type:none; } #navigation { margin:20px; } #navigation li { float:left; text-align:center; position:relative; } #navigation li a:link, #navigation li a:visited { display:block; text-decoration:none; color:#000; width:120px; height:40px; line-height:40px; border:1px solid #fff; border-width:1px 1px 0 0; background:#c5dbf2; padding-left:10px; } #navigation li a:hover { color:#fff; background:#2687eb; } #navigation li ul li a:hover { color:#fff; background:#6b839c; } #navigation li ul { display:none; position:absolute; top:40px; left:0; margin-top:1px; width:120px; } #navigation li ul li ul { display:none; position:absolute; top:0px; left:130px; margin-top:0; margin-left:1px; width:120px; } </style> </head> <body> <ul id="navigation"> <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"> 栏目1 <ul> <li>栏目1->菜单1</li> <li>栏目1->菜单2</li> <li>栏目1->菜单3</li> <li>栏目1->菜单4</li> </ul> </li> <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"> 栏目2 <ul> <li>栏目2->菜单1</li> <li>栏目2->菜单2</li> <li>栏目2->菜单3</li> <li>栏目2->菜单4</li> <li>栏目2->菜单5</li> </ul> </li> <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"> 栏目3 <ul> <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"> 栏目3->菜单1 <ul> <li>菜单1->子菜单1</li> <li>菜单1->子菜单2</li> <li>菜单1->子菜单3</li> <li>菜单1->子菜单4</li> </ul> </li> <li>栏目3->菜单2</li> <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"> 栏目3->菜单3 <ul> <li>菜单3->子菜单1</li> <li>菜单3->子菜单2</li> <li>菜单3->子菜单3</li> </ul> </li> </ul> </li> </ul> </body> </html> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]