当前位置:首页 > jquery

jquery折叠菜单

2026-02-03 20:51:58jquery

使用 jQuery 实现折叠菜单

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

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

<!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>

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

<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
分享给朋友:

相关文章

jquery 之家

jquery 之家

jQuery 之家是一个专注于 jQuery 相关资源的中文网站,提供插件、教程、代码示例等内容。以下是相关信息整理: jQuery 之家网站内容 该网站通常包含以下资源: jQuery 插件…

jquery 面试题

jquery 面试题

以下是一些常见的 jQuery 面试题及其解答,涵盖基础概念、核心方法和实际应用场景。 jQuery 基础概念 jQuery 是什么? jQuery 是一个轻量级的 JavaScript 库,简化了…

vue实现菜单

vue实现菜单

使用 Vue 实现菜单 Vue 可以轻松实现动态菜单,通常结合路由和组件化思想。以下是一个基于 Vue 3 和 Vue Router 的菜单实现方案: 基础菜单结构 在 Vue 中,菜单通常是一个…

jquery插件

jquery插件

jQuery 插件开发指南 jQuery 插件是一种扩展 jQuery 功能的模块化方式,允许开发者封装可重用的代码。以下是开发和使用 jQuery 插件的基本方法。 插件基本结构 jQuery…

jquery.js

jquery.js

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

css菜单制作

css菜单制作

CSS 菜单制作方法 水平导航菜单 使用 display: inline-block 或 flexbox 可以轻松创建水平导航菜单。以下是一个基本示例: <nav> <ul c…