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

JS NavSlide功能异常:点击Burger按钮无法呼出侧边菜单

侧边滑出菜单点击无响应的问题排查与修复

核心问题1:JavaScript文件未正确加载

你的HTML中script标签存在语法错误,导致浏览器无法识别并加载指定的JS文件:

<!-- 错误写法 -->
<script> src="./js/app.js"</script>

<!-- 正确写法 -->
<script src="./js/app.js"></script>

需移除script标签内多余的大括号,保证src属性正确嵌入标签结构中。

核心问题2:初始化逻辑未执行

你的JS代码仅定义了初始化函数,但没有调用它,导致菜单点击事件从未绑定到Burger按钮上:

// 修复前
const navSlide = () => {
  const burger = document.querySelector('.burger');
  const nav = document.querySelector('.navigation');

  burger.addEventListener('click', () => {
    nav.classList.toggle('nav-active');
  });
}
const app = () => {
  navSlide();
}

// 修复后:在代码末尾调用初始化函数
const navSlide = () => {
  const burger = document.querySelector('.burger');
  const nav = document.querySelector('.navigation');

  burger.addEventListener('click', () => {
    nav.classList.toggle('nav-active');
  });
}
const app = () => {
  navSlide();
}
// 执行初始化
app();

也可以简化逻辑,直接调用navSlide():

const navSlide = () => {
  const burger = document.querySelector('.burger');
  const nav = document.querySelector('.navigation');

  burger.addEventListener('click', () => {
    nav.classList.toggle('nav-active');
  });
}
// 直接触发初始化
navSlide();

辅助修复:CSS语法与优先级问题

  1. 背景色语法错误:.navigation类中background-color: (white);的括号是多余的,需修改为:
background-color: white;
  1. 样式优先级问题:当前.nav-active样式写在媒体查询外部,移动端下可能被媒体查询内的.navigation样式覆盖,建议将其移入@media screen and (max-width: 768px)媒体查询内部:
@media screen and (max-width: 768px){
    body{
        overflow-x: hidden;
    }
    .navigation{
        position: absolute;
        right: 0px;
        height: 92vh;
        top: 8vh;
        background-color: white;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 50%;
        transform: translateX(100%);
        transition: transform 0.5s ease-in;
    }
    .navigation li{
        opacity: 0;
    }
    .burger{
        display: block;
    }
    /* 将.nav-active移入媒体查询内 */
    .nav-active{
        transform: translateX(0%);
    }
}

可选优化:添加菜单淡入效果

若希望菜单展开时列表项有淡入动画,可在CSS中补充过渡逻辑:

@media screen and (max-width: 768px){
    .navigation li{
        opacity: 0;
        transition: opacity 0.5s ease-in;
    }
    .nav-active li{
        opacity: 1;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:39:04