html + css + js 实现折叠菜单的方法

本文介绍了如何利用HTML、CSS和JavaScript实现折叠菜单的功能。通过在JS中使用添加类的方式控制菜单的展开与折叠,同时结合CSS的技巧,达到良好的交互效果。

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

1. 套用模板,将菜单的相关信息直接放在脚本数据中,使用循环生成

<script id="templateNavBar" type="text/html">
    <div class="nav-bar-logo">

    </div>
    {{each $data as item i}}
        <div class="nav-item {{item.class}}">{{item.name}}</div>
        {{if item.child != null}}
            <div class="childgroup">
                {{each item.child as child i}}
                    <div class="nav-item {{child.class}} child">{{child.name}}</div>
                {{/each}}
            </div>
        {{/if}}
    {{/each}}
</script>

2.在js中通过添加类open的方式来实现菜单的折叠和展开

               $(document).on('click','.nav-item:not(.child)',function () {
              console.log("choosing");
              var that = $(this);
              var next =that.next();
              if(next.hasClass('childgroup')){
                  if (that.hasClass('open'))
                  {
                      // 收起当前菜单项
                      that.removeClass('open');
                      next.slideUp();
                  }
                  else{
                      // 将其他打开的菜单项收起来
                      if($('.nav-item:not(.child).open').next().hasClass('childgroup'))
                      {
                          $('.nav-item:not(.child).open').next().slideUp();
                          $('.nav-item:not(.child).open').removeClass('open');
                      }
                      // 激活当前菜单项
                      that.addClass('open');
                      next.slideDown();
                  }
              }
              // 监听一级菜单结束

这里面也有一些css的使用技巧在其中,希望自己能记住

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值