当前位置:首页 > 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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

jquery选择器

jquery选择器

jQuery 选择器基础 jQuery 选择器用于选取 DOM 元素,基于 CSS 选择器语法扩展。通过 $() 或 jQuery() 函数调用,返回匹配元素的集合。 常见选择器类型 元素选择…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…

jquery 动画

jquery 动画

jQuery 动画基础 jQuery 提供了一系列动画方法,用于实现元素的动态效果,如淡入淡出、滑动、自定义动画等。 常用动画方法 fadeIn() / fadeOut(): 元素的淡入和…

jquery列表

jquery列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>),包括动态添加、删除、修改列表项,以及事件绑定等。 创建列表 使用 j…

jquery视频

jquery视频

以下是关于 jQuery 视频学习资源的整理,涵盖免费教程、实战项目和进阶内容: 免费在线教程 W3School jQuery 教程 提供基础语法、选择器、事件处理等内容的交互式练习,适合快速入门。…