You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript或jQuery实现汉堡二级下拉菜单问题求助

问题1:关闭按钮(X)移至左侧

在你现有的CSS代码基础上新增如下样式即可:

/* 菜单展开状态下调整关闭按钮位置 */
#menuToggle input:checked {
  position: fixed;
  top: 25px;
  left: 20px;
}
#menuToggle input:checked ~ span {
  position: fixed;
  top: 25px;
  left: 20px;
}

你可以根据实际设计需求调整top和left的数值,匹配预期的关闭按钮位置。


问题2:子菜单无法触发

你当前的子菜单使用了visibility: hidden属性,该属性只会隐藏元素,不会释放元素占据的页面空间,所以子菜单即使不可见,还是浮在menu-item1上方挡住了点击事件,按以下两步修改即可:

第一步:修改子菜单CSS

将#dropdown-m的visibility: hidden替换为display: none:

#dropdown-m {
  position: absolute;
  background: #F8F8F8;
  width: 340px;
  height: 528px;
  margin: -150px 0 0 -30px;
  list-style: none;
  z-index: 5;
  /* 删掉原来的visibility: hidden,新增下面一行 */
  display: none;
}

第二步:添加JS控制子菜单切换

在页面的</body>标签前加入如下原生JS代码即可,无需引入jQuery:

const menuItem1 = document.querySelector('.list');
const subMenu = document.querySelector('#dropdown-m');
const backBtn = document.querySelector('.back');

// 点击menu-item1显示子菜单
menuItem1.addEventListener('click', e => {
  e.preventDefault();
  subMenu.style.display = 'block';
})

// 点击返回按钮收起子菜单
backBtn.addEventListener('click', e => {
  e.preventDefault();
  subMenu.style.display = 'none';
})

如果你的页面有多个.list类名的元素,可以给menu-item1对应的<ul class="list">单独设置id="menuItem1",然后把JS里的.querySelector('.list')替换为.querySelector('#menuItem1')避免冲突。


内容的提问来源于stack exchange,提问作者Babis Patatoukos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:48:02