pc页面侧边栏子菜单收缩效果

本文介绍如何使用CSS transition属性来实现一个具有延迟显示效果的导航菜单,通过隐藏超出固定高度的内容并结合JavaScript来控制菜单的展开与折叠。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击一级菜单时二级菜单显示。注意特效是不会立刻的显示而是延缓几秒钟的状态。

我们考虑到用css的transition的属性。


首先他的多有子菜单都是出现的只是你给他写死了一个高度超过这个高度的内容overflow:hidden.所以你看不见他的二级菜单内容。


<div class="nav_wrap">
<ul class="nav_ul">

//一级菜单
<li class="active"><a class="nav_one ermindex" href="index.html"><i class="s-icon"></i>首页</a></li>

//一级菜单
<li ><a class="nav_one"><i class="s-icon s-icon2"></i>福利管理
  <b class="s-arrow1"></b></a>

     //二级菜单    

                      <ul class="nav_content">
<li class="sendwelfare" onclick="javascript:window.location.href='grantWelfareNew.html'">发放福利</li>
<li class="superwelfare" onclick="gotoSuperwelfare()">集采集配</li>
<li class="welfarerecord" onclick="javascript:window.location.href='welfare.html'">福利记录</li>
</ul>
</li>

        </ul>

</div>

.nav_wrap{
 background-color: #2e3340;
}

.nav_wrap .nav_ul>li{

      height: 50px;

  1. overflow: hidden;
  2. border-left: 3px solid #20242d;

    transition: .4s; //添加延缓展开的样式

}

.nav_wrap .nav_ul>li .nav_one {

      height: 50px;

     line-height:50px; 

}

.nav_wrap .nav_ul>li .nav_content li {  
   
height: 30px; //二级菜单高度固定
    line-height: 30px;
    color: #fff;
    font-size: 14px;
}

.nav_wrap .nav_ul>li.active, .nav_wrap .nav_ul>li:hover {
    border-color: #ff4138;
    background-color: #20242d;
}



js的内容:

$(".nav_wrap .nav_ul > li > .nav_one").on("click", function() {  
   var sLength = $(this).siblings().children().length;  //记住子元素的个数。他的高度是固定的一乘就可以算出总共的高度了
   var liHeight =  $(this).parent().height();    // 记住父元素的高度==50就是缩起来
  
		
    if(sLength > 0 && liHeight==50){  //如果子元素个数大于0,并且他的高度是50的,说明他是缩起的
	$(this).parents("li").css("height",64+Lheight*30).addClass("active");  //展开这个
        $(this).parents("li").siblings().css("height","50px").removeClass("active"); //其他的都缩起
   }else{
      $(this).parents("li").css("height","50px").removeClass("active");
   }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值