首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js三级折叠菜单

以下是关于 JavaScript 实现三级折叠菜单的相关内容:

基础概念: 三级折叠菜单是一种常见的网页交互元素,允许用户展开和折叠不同层级的菜单项,以展示或隐藏相关内容。

优势

  1. 提供清晰的导航结构,方便用户快速找到所需信息。
  2. 节省页面空间,使页面布局更简洁。

类型: 常见的有基于纯 JavaScript 实现的,也有结合 CSS 和 JavaScript 实现的。

应用场景

  1. 大型网站的导航菜单。
  2. 内容较多的页面的分类筛选。

实现示例代码

HTML 结构:

代码语言:txt
复制
<ul class="menu">
  <li>
    <span>菜单 1</span>
    <ul>
      <li>
        <span>子菜单 1-1</span>
        <ul>
          <li>内容 1-1-1</li>
          <li>内容 1-1-2</li>
        </ul>
      </li>
      <li>内容 1-2</li>
    </ul>
  </li>
  <!-- 其他菜单项 -->
</ul>

CSS 样式:

代码语言:txt
复制
.menu ul {
  display: none;
}
.menu li:hover > ul {
  display: block;
}

JavaScript 代码:

代码语言:txt
复制
const menuItems = document.querySelectorAll('.menu > li');

menuItems.forEach(item => {
  item.addEventListener('click', function(e) {
    if (e.target.tagName === 'SPAN') {
      const subMenu = this.querySelector('ul');
      if (subMenu) {
        subMenu.style.display = subMenu.style.display === 'block' ? 'none' : 'block';
      }
    }
  });
});

可能出现的问题及解决方法:

  1. 点击菜单项时页面跳转:在 JavaScript 事件处理函数中调用 e.preventDefault() 阻止默认行为。
  2. 菜单展开状态不记忆:可以使用本地存储(localStorage)来保存菜单的展开状态,在页面加载时读取并设置。

希望以上内容对您有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • java使用递归实现三级菜单

    java使用递归实现三级菜单 javaCopy codeimport java.util.*; public class Menu { private static Map<String...input.equals("back")) { System.out.println("请选择三级菜单(输入数字 1/2/3)或返回上一级(输入 back):");...菜单数据使用一个 Map 存储,键为一级菜单项,值为该菜单项下的二级菜单列表。 在 main 方法中调用 printMenu 方法开始执行程序。...如果用户选择了一个有效的二级菜单项,则调用 printSubSubMenu 方法打印该二级菜单项的三级菜单。 printSubSubMenu 方法同样循环等待用户输入三级菜单项或返回上一级。...在这个示例中,三级菜单项是固定的,因此只需要打印三个选项。如果用户选择了一个有效的三级菜单项,则显示所选项的信息。 在这个示例中,使用了递归方法来实现三级菜单的显示。

    1.5K60

    iOS支持展开折叠的弹出菜单(水平方向弹出菜单视图)

    2.水平方向弹出菜单视图的应用场景: 2.1、门店商品的支持的功能:向右横向展开视图(操作:下/上架、打印、编辑、同步网络)支持再次折叠隐藏视图 ?...2.2、网店商品目前只包含下架功能:展开折叠视图:(包含上/下架商品功能) ? 竖向弹出菜单视图 弹出菜单:会员模块的右上角的下拉菜单(竖向) ?...I、 支持展开折叠的弹出菜单的实现思路 1.1将弹出视图添加到keyWindow,蒙版也添加到主窗口(主要原因是点击屏幕的空白处,需要隐藏弹出视图) #define kWindow [UIApplication...,还是折叠 #pragma mark - ******** 判断是展开弹出菜单,还是折叠 - (void)expandMenu:(id)x{//点击按钮 self.popmenuView.model...2.水平方向弹出菜单视图的应用场景: 2.1、门店商品的支持的功能:向右横向展开视图(操作:下/上架、打印、编辑、同步网络)支持再次折叠隐藏视图 ?

    2.5K10
    领券