本文提供了一段JavaScript实现的仿京东风格左侧分类导航下拉菜单代码。通过HTML结构定义分类列表,结合CSS样式设置布局与交互效果,利用JavaScript控制鼠标悬停时的显示与隐藏逻辑。该示例代码结构清晰,适合前端开发者参考学习,用于构建电商网站或后台管理系统的侧边分类导航功能。
仿京东左侧分类导航菜单实现
本文分享了一个仿照京东和淘宝商城设计的左侧分类导航下拉菜单实现方案,供读者参考。
具体效果如下图所示:

以下是实现该功能的核心代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<style>
*{margin:0;padding:0;}
.ul{position:relative;width:200px;height:auto;}
.ul li{height:24px;line-height:24px;border-bottom:1px solid #ddd;text-align:center;font-size:12px;}
.ul li a{display:block;background:#fff;color:#000;text-decoration:none;}
.ul li a:hover{display:block;background:#000;color:#fff;text-decoration:none;}
.ul li div{display:none;width:400px; height:auto;position:absolute;top:0;left:200px; background:#000; color:#fff;}
.ul li div dl dd{float:left; width:100px;}
.ul .liname div{display:block;}
</style>
<script>
window.onload=function(){
var aLi=document.getElementsByTagName("li");
for(var i=0;aLi.length>i;i++){
aLi[i].i=i;
aLi[i].onmouseover=function(){
this.className="liname";
var h1=this.i*25;
var h2=this.getElementsByTagName("div")[0].offsetHeight;
if(h2<h1){
this.getElementsByTagName("div")[0].style.top=h1+'px';
}
}
aLi[i].onmouseout=function(){
this.className="";
}
}
}
</script>
</head>
<body>
<ul class="ul">
<li>
<a href="">类别1</a>
<div class="div">
<dl>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li>
<a href="">类别2</a>
<div class="div">
<dl>
<dd>类别2</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别3</a><div class="div">
<dl>
<dd>类别3</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别4</a><div class="div">
<dl>
<dd>类别4</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别5</a><div class="div">
<dl>
<dd>类别5</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别6</a><div class="div">
<dl>
<dd>类别6</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别7</a><div class="div">
<dl>
<dd>类别7</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
<li><a href="">类别8</a><div class="div">
<dl>
<dd>类别8</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
<dd>类别1</dd>
</dl>
</div>
</li>
</ul>
</body>
</html>
希望这段代码能协助大家更好地掌握JavaScript程序设计技巧。