当前位置:首页 > jquery

jquery折叠菜单

2026-02-03 20:51:58jquery

使用 jQuery 实现折叠菜单

通过 jQuery 可以轻松实现折叠菜单效果,以下是两种常见方法:

方法一:使用 slideToggle() 实现基础折叠

jquery折叠菜单

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <style>
    .menu-item {
      cursor: pointer;
      padding: 10px;
      background: #f0f0f0;
      margin-bottom: 5px;
    }
    .submenu {
      display: none;
      padding: 10px;
      background: #e0e0e0;
    }
  </style>
</head>
<body>
  <div class="menu-item">主菜单</div>
  <div class="submenu">
    <div>子项1</div>
    <div>子项2</div>
    <div>子项3</div>
  </div>

  <script>
    $(document).ready(function(){
      $(".menu-item").click(function(){
        $(this).next(".submenu").slideToggle();
      });
    });
  </script>
</body>
</html>

方法二:添加动画效果和状态指示

jquery折叠菜单

<script>
  $(document).ready(function(){
    $(".menu-item").click(function(){
      $(this).next(".submenu").slideToggle(300);
      $(this).toggleClass("active");
    });
  });
</script>

<style>
  .menu-item.active {
    background: #d0d0d0;
  }
  .menu-item::after {
    content: "+";
    float: right;
  }
  .menu-item.active::after {
    content: "-";
  }
</style>

实现多级折叠菜单

对于多级菜单结构,可以使用递归方式处理:

<div class="menu">
  <div class="menu-item">一级菜单
    <div class="submenu">
      <div class="menu-item">二级菜单
        <div class="submenu">
          <div>三级项1</div>
          <div>三级项2</div>
        </div>
      </div>
    </div>
  </div>
</div>

<script>
  $(function(){
    $(".menu").on("click", ".menu-item", function(e){
      e.stopPropagation();
      $(this).children(".submenu").slideToggle();
      $(this).toggleClass("active");
    });
  });
</script>

使用 jQuery UI 实现手风琴效果

如果需要更专业的折叠效果,可以引入 jQuery UI:

<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="accordion">
  <h3>菜单1</h3>
  <div>
    <p>内容1</p>
  </div>
  <h3>菜单2</h3>
  <div>
    <p>内容2</p>
  </div>
</div>

<script>
  $(function(){
    $("#accordion").accordion({
      collapsible: true,
      heightStyle: "content"
    });
  });
</script>

注意事项

  • 确保 DOM 完全加载后再绑定事件,使用 $(document).ready()
  • 多级菜单注意使用 e.stopPropagation() 防止事件冒泡
  • 考虑添加 CSS 过渡效果提升用户体验
  • 移动端设备可能需要添加触摸事件支持

以上方法可以根据实际需求进行组合和扩展,实现各种复杂的折叠菜单效果。

标签: 菜单jquery
分享给朋友:

相关文章

vue实现菜单定位

vue实现菜单定位

实现菜单定位的方法 在Vue中实现菜单定位功能,可以通过监听滚动事件或使用Intersection Observer API来判断当前显示的菜单项,并高亮对应的导航链接。以下是几种常见的实现方式:…

vue elementui实现菜单

vue elementui实现菜单

Vue ElementUI 实现菜单 安装 ElementUI 确保项目已安装 Vue 和 ElementUI。若未安装,可以通过以下命令安装: npm install element-ui 在 m…

jquery 选择

jquery 选择

jQuery 选择器基础 jQuery 选择器基于 CSS 选择器语法,用于快速定位和操作 DOM 元素。核心语法为 $() 或 jQuery(),括号内传入选择器表达式。 // 选择所有 <…

jquery 属性

jquery 属性

jQuery 属性操作 jQuery 提供了一系列方法来获取、设置和操作 HTML 元素的属性。以下是常用的属性操作方法: attr() 方法 用于获取或设置元素的属性值。获取属性时,传入属性名;设…

jquery 效果

jquery 效果

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。jQuery 提供了丰富的效果(Effects)功能,可以轻松实现元素的动态显…

jquery 列表

jquery 列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>)。以下是一些常见的操作方式: 动态添加列表项 使用 append()…