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

如何实现响应式下拉菜单点击时切换'Menu'与'Close'文本

响应式菜单文本切换及功能优化方案

关键修改步骤:

  • 给菜单触发文本的<span>添加唯一id,方便JS精准获取
  • 在点击函数中加入文本切换逻辑
  • 优化JS变量声明,避免重复覆盖问题

修改后的完整代码:

HTML:

<header>
  <div class="open-menu"><span id="menuToggleText" onclick="myFunction()">Menu</span></div>
  <nav>...</nav>
</header>

JavaScript:

function myFunction() {
  // 获取页面元素
  const nav = document.querySelector("nav");
  const header = document.querySelector("header");
  const body = document.querySelector("body");
  const menuText = document.getElementById("menuToggleText");

  // 切换各类样式
  nav.classList.toggle("show-nav");
  header.classList.toggle("show-nav");
  body.classList.toggle("show-nav");

  // 切换菜单显示文本
  if (menuText.textContent === "Menu") {
    menuText.textContent = "Close";
  } else {
    menuText.textContent = "Menu";
  }
}

CSS(保留原有样式即可):

.open-menu {
  display: block;
  cursor: pointer;
  font-size: 1.8rem;
  border-bottom: 1px solid white;
}

.open-menu:hover {
  border-bottom: 1px solid;
}

nav {
  display: none;
}

nav.show-nav {
  display: block;
  min-height: calc(100vh - 6.3rem);
}

header.show-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

body.show-nav {
  height: 0;
  overflow: hidden;
}

简单说明:

  1. 给触发文本的<span>加id后,JS能快速定位元素,比用querySelector更高效
  2. 点击时先完成原有类切换逻辑,再根据当前文本内容双向切换"Menu"/"Close"
  3. 把重复的var element改成不同变量名(用const更合适,因为元素引用不会改变),避免变量被覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:44:58