二级菜单的制作(升级版) ,一般数据从后台获取,这边用数组简单的模拟

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
*{
margin: 0;
padding: 0;
}
.nav{
list-style: none;
width: 300px;
margin: 100px auto;
}
.nav > li{
border: 1px solid #000;
line-height: 35px;
border-bottom: none;
text-indent: 2px;
position: relative;
}
.nav li:last-child{
border-bottom: 1px solid #000;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.nav li:first-child{
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
.nav >li > span{
display: inline-block;
background-image: url(./img/right.png) ;
width: 32px;
height:32px ;
position: absolute;
right: 10px;
top: 5px;

}
.sub >li{
list-style: none;
background-color: purple;
border-bottom: 1px solid white;
}
.sub >li:hover{
background: red;
}

.nav > .current >span{
transform: rotate(90deg);
}
.sub{
display: none;
}
</style>
<body>
<ul class="nav">
<!-- <li class="">一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- <li>一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- <li>一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul></li>-->
<!-- <li>一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul></li>-->
<!-- <li>一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul></li>-->
<!-- <li>一级菜单<span></span>-->
<!-- <ul class="sub">-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- <li>二级菜单</li>-->
<!-- </ul></li>-->
</ul>
</body>
<script src="./jquery.js"></script>
<script>
$(function () {
//模拟后台返回的数据
var first_men =["一级菜单1","一级菜单2","一级菜单3","一级菜单4","一级菜单5"];
var second_men=["二级菜单1","二级菜单2","二级菜单3","二级菜单4"];
var str =``;
for(let i=0;i<first_men.length;i++){
str +=`<li class="">${first_men[i]}<span></span>
<ul class="sub">`
for(var k=0;k<second_men.length;k++){
str +=` <li>${second_men[k]}</li>`
}
str+=`</ul>
</li>`

}
$(".nav").html(str)

//1.监听一级菜单的点击事件
$(".nav ").delegate("li","click",function () {
//1.1拿到二级菜单
var $sub =$(this).children(".sub")
//1.2让二级菜单展开
$sub.stop().slideToggle(1000); //再次点击隐藏

//1.3拿到所以非当前二级菜单
var $otherSub =$(this).siblings().children(".sub")

//1.4让所以非当前二级菜单收起
$otherSub.slideUp(1000)

//1.5让被点击的一级菜单箭头旋转
$(this).addClass("current");

//1.6让非被点击的一级菜单还原
$(this).siblings().removeClass("current");

})

})

</script>
</html>

PS:在生个版本之上改进的更加贴近实际项目,点击一级菜单展开,再点击就折叠

效果图

 

转载于:https://www.cnblogs.com/malong1992/p/11397096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值