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

侧边导航栏(NavBar)功能异常求助:JS逻辑颠倒+按钮显示问题

侧边导航栏问题修复方案

问题根源及修复点

  • 函数执行反向:HTML中按钮绑定的函数逻辑颠倒,且open/close是JavaScript内置关键字,用作自定义函数名会引发冲突
  • 打开按钮被遮挡:侧边导航栏默认显示且层级高于打开按钮,导致按钮被完全覆盖
  • 关闭后按钮消失:函数名冲突引发异常,加上初始样式设置错误,导致关闭后按钮无法正常显示

修正后的完整代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="script.js"></script>
    <link href="style.css" rel="stylesheet">
    <title>IKC Website</title>
</head>
<body>
    <span class="openNav" onclick="openSideNav()">&#9776; open</span>

    <div id="sideNav" class="sideNav">
        <a href="javascript:void(0)" class="closeButton" onclick="closeSideNav()">&times;</a>
        <a href="about.html">About</a>
        <a href="members.html">Members</a>
        <a href="services.html">Services</a>
        <a href="contactUs.html">Contact Us</a>
    </div>
</body>
</html>

CSS

body {
    margin: 0;
    padding: 0;
    font-family: 'Lato', sans-serif;
}

.openNav {
    font-size: 30px;
    cursor: pointer;
    position: relative;
    top: 100px;
    left: 100px;
    margin: 10px;
    z-index: 2; /* 提高层级,避免被侧边栏遮挡 */
    color: black;
}

.sideNav {
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgb(0, 0, 0);
    width: 0; /* 默认隐藏 */
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
    overflow-x: hidden;
    transition: 0.5s;
}

.sideNav a {
    color: #818181;
    text-decoration: none;
    font-size: 40px;
    padding: 10px;
    transition: 0.3s;
    display: block;
}

.sideNav .closeButton {
    color: #818181;
    position: absolute;
    top: 20px;
    right: 25px;
    font-size: 60px;
    margin-left: 50px;
}

.sideNav a:hover{
    color: white;
}

@media screen and (max-height: 450px) {
    .sideNav {
        padding-top: 50px;
    }
    .sideNav a {
        font-size: 18px;
    }
    .sideNav .closeButton {
        font-size: 30px;
        top: 15px;
        right: 35px;
    }
}

JavaScript

function openSideNav() {
    document.getElementById("sideNav").style.width = "55vh"; // 和设计的初始宽度保持一致
}

function closeSideNav() {
    document.getElementById("sideNav").style.width = "0";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:24:53