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

汉堡菜单点击异常:无法切换为X样式且导航项未左滑入

汉堡菜单Bug排查与修复方案

问题核心

当前汉堡菜单存在两个关键问题:

  1. 点击后仅中间bar消失,无法切换为X样式
  2. 导航列表无法从左侧平滑滑入

错误点及修复方案

1. HTML类名冲突

你的<li>元素错误复用了nav-menu类(与父级<ul>类名重复),但CSS中定义的.nav-item才是控制列表项间距的选择器,导致样式不生效。

修正后的HTML导航段:

<ul class="nav-menu">
    <li class="nav-item">
        <a href="#" class="nav-link">Home</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">News</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">Popular</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">Trending</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">Catergories</a>
    </li>
</ul>

2. CSS旋转属性错误

汉堡菜单的X样式误用了rotateY()(3D绕Y轴旋转),正确做法是用translateY()调整bar位置后,再用rotate()做2D旋转。另外,移动端导航背景为黑色,需修改链接颜色为白色避免文字不可见。

修正后的CSS媒体查询段:

@media (max-width: 768px) {
  .hamburger {
    display: block;
  }
  .hamburger.active .bar:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active .bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .hamburger.active .bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  .nav-menu {
    position: fixed;
    left: -100%;
    top: 70px;
    gap: 0;
    flex-direction: column;
    width: 100%;
    background-color: black;
    text-align: center;
    transition: 0.3s ease;
  }
  .nav-item {
    margin: 16px 0;
  }
  .nav-link {
    color: white;
  }
  .nav-menu.active {
    left: 0;
  }
}

3. JavaScript逻辑无需修改

你的JS代码逻辑正确,defer属性确保DOM加载完成后执行脚本,无需调整。


修复后效果

  • 点击汉堡菜单,三个bar会正确转换为X样式
  • 导航列表从左侧平滑滑入,列表项间距正常显示
  • 导航文字在黑色背景下清晰可见

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:00:57