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

移动端点击汉堡图标后响应式菜单不显示问题求助

移动端汉堡菜单点击无响应问题解决方法

跟着YouTube教程制作第一个网站,遇到移动端菜单问题:希望菜单呈现红背景样式(如图),但点击汉堡图标后菜单毫无反应。

目标菜单样式(红背景)
当前汉堡图标状态

你的代码已经完成了移动端菜单的CSS布局,但缺少JavaScript交互逻辑来控制菜单的显示/隐藏,同时需要调整菜单背景色来匹配你想要的红色样式。

具体修复步骤:

  1. 添加JavaScript事件监听,绑定汉堡按钮和关闭按钮的点击动作,切换菜单的显示状态
  2. 修改移动端菜单的背景色为目标红色
  3. 可选:添加过渡动画,让菜单滑入滑出更流畅

修改后的完整代码:

HTML(新增JavaScript交互)

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title> Beauty by Name </title>
  <link rel="stylesheet" href="style.css">
  <link rel="preconnect" href="https://fonts.gstatic.com">
  <link href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
</head>

<body>
  <section class="header">
    <nav>
      <a href="index.html"><img class="logo" style="width: 200px;" src="images/logo.jpg" alt=""></a>
      <div class="nav-links">
        <i class="fa-solid fa-xmark"></i>
        <ul>
          <li><a href="">Home</a></li>
          <li><a href="">About</a></li>
          <li><a href="">Offer</a></li>
          <li><a href="">Contact</a></li>
        </ul>
      </div>
      <i class="fa-solid fa-bars"></i>
    </nav>

    <div class="text-box">
      <h1>Beauty By YOUR Name</h1>
      <p>We are dedicated to enhancing your natural charm, offering a range of tailored treatments and pampering experiences. <br> Step into our serene oasis and let us bring out your inner glow.</p>
      <a href="" class="hero-btn">Contact us</a>
    </div>

  </section>

  <script>
    // 获取菜单及按钮元素
    const navLinks = document.querySelector('.nav-links');
    const menuBtn = document.querySelector('.fa-bars');
    const closeBtn = document.querySelector('.fa-xmark');

    // 点击汉堡按钮打开菜单
    menuBtn.addEventListener('click', () => {
      navLinks.style.right = '0';
    });

    // 点击关闭按钮隐藏菜单
    closeBtn.addEventListener('click', () => {
      navLinks.style.right = '-200px';
    });
  </script>
</body>

CSS(修改背景色+添加过渡动画)

* {
  margin: 0;
  padding: 0;
  font-family: 'Lora', serif;
}

.header {
  /*overflow: hidden; */
  min-height: 100vh;
  width: 100%;
  background-color: white;
  background-position: center;
  background-size: cover;
  position: relative;
}

.logo {
  position: absolute;
  top: 0;
  left: 0;
}

nav {
  display: flex;
  padding: 2% 6%;
  justify-content: space-between;
}

nav img {
  width: 150px;
}

.nav-links {
  flex: 1;
  text-align: right;
}

.nav-links ul li {
  list-style: none;
  display: inline-block;
  padding: 8px 12px;
  position: relative;
}

.nav-links ul li a {
  color: #515675;
  text-decoration: none;
  font-size: 16px;
}

.nav-links ul li::after {
  content: '';
  width: 100%;
  height: 2px;
  background: #E3AAAF;
  display: block;
  margin: auto;
  transition: 0.5s;
}

.nav-links ul li:hover::after {
  background: #515675;
}

.text-box {
  width: 90%;
  color: #515675;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.text-box h1 {
  font-size: 62px;
}

.text-box p {
  margin: 10px 0 42px;
  font-size: 16px;
  color: #515675;
}

.hero-btn {
  display: inline-block;
  text-decoration: none;
  color: #515675;
  border: 1px solid #515675;
  padding: 12px 34px;
  font-size: 16px;
  background: transparent;
  position: relative;
  cursor: pointer;
}

.hero-btn:hover {
  border: 1px solid #E3AAAF;
  background: #E3AAAF;
  transition: 1s;
}

nav .fa-solid {
  display: none;
}

@media(max-width: 700px) {
  * {
    overflow-x: hidden;
  }
  .text-box h1 {
    font-size: 20px;
  }
  .nav-links ul li {
    display: block;
  }
  .nav-links {
    position: absolute;
    /* 设置为目标红色背景,可根据截图调整色值 */
    background: #E3AAAF;
    height: 100vh;
    width: 200px;
    top: 0;
    right: -200px;
    text-align: left;
    z-index: 2;
    /* 添加过渡动画,优化菜单切换体验 */
    transition: right 0.5s ease;
  }
  /* 适配红色背景,修改菜单文字颜色为白色 */
  .nav-links ul li a {
    color: white;
  }
  nav .fa-solid {
    display: block;
    color: #515675;
    margin: 10px;
    font-size: 22px;
    cursor: pointer;
  }
  .nav-links ul {
    padding: 30px;
  }
}

说明:

  • JavaScript部分通过监听按钮点击,修改.nav-links的right属性,实现菜单从右侧滑入/滑出
  • CSS里将移动端菜单背景色改为红色(使用了你现有代码中的#E3AAAF,若截图颜色不同可替换为对应色值)
  • 添加transition: right 0.5s ease让菜单切换更顺滑
  • 同步修改移动端菜单文字颜色为白色,保证红色背景下的可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:44:57