JavaScript实现向右展开的多级菜单
作者:纸飞机时间:2026-10-29 14:20:02浏览:634
本文介绍一种使用JavaScript实现的多级网页菜单效果。当鼠标悬停在左侧主菜单时,右侧会自动展开二级菜单。该示例代码结构简洁,未进行复杂美化,适合初学者参考学习,旨在提供基础的功能实现逻辑。
JavaScript实现向右展开的多级菜单
本文通过具体实例展示如何利用JavaScript实现向右展开的多级网页菜单功能,供读者参考借鉴。
该方案利用JavaScript实现向右展开的多级菜单交互:当鼠标悬停在左侧主菜单区域时,右侧会动态展开二级菜单。代码风格较为朴素,未做深度美化,由新手编写,欢迎指正,其中仍有较多可优化之处。
运行效果截图如下:

在线演示地址如下:
http://demo.jb51.net/js/2015/js-right-show-web-menu-codes/
具体代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>向右伸出的多级菜单</title>
<style type="text/css">
*{
padding:0;
margin:0;
}
li{
list-style:none;
}
ul{
background:rgb(200,13,34);
width:250px;
float:left;
}
b{
display:block;
width:500px;
height:40px;
background:rgb(24,122,173);
}
ul li{
height:32px;
}
ul li:hover{
height:32px;
background:orange;
}
#nav1{
position:absolute;
}
#nav3{
position:relative;
left:0;
background:green;
visibility:hidden;
}
</style>
</head>
<body>
<div id="nav1">
<ul id="nav2">
<li>文学</li>
<li>艺术</li>
<li>摄影</li>
</ul>
<ul id="nav3">
<li>1-1</li>
<li>2-1</li>
<li>3-1</li>
</ul>
</div>
<script type="text/javascript">
var focus=false;
var showdiv=document.getElementById("nav3");
showdiv.onmouseover=function(){
focus=true;
this.style.visibility="visible";
}
showdiv.onmouseout=function(){
focus=false;
this.style.visibility="hidden";
}
function bindToggle(index,flag){
var showdiv= document.getElementById("nav3");
var delayshow= function(){
if(flag ==1 ){
showdiv.style.visibility="visible";
showdiv.style.top=index*32+"px";
}else {
if(!focus){
showdiv.style.visibility="hidden";
}
}
}
return function(){
setTimeout(delayshow,150);
}
}
var menu=document.getElementById("nav2").childNodes;
var index=0;
for(var i=0;i<menu.length;i++){
if(1==menu[i].nodeType){
menu[i].onmouseover= bindToggle.call(menu[i],index,1);
menu[i].onmouseout= bindToggle.call(menu[i],index,0);
index++;
}
}
</script>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。
作者最新文章
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
