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

侧边导航栏点击后无法保持展开,需长按按钮才能维持打开状态

侧边导航栏点击保持展开解决方案

核心问题

  1. JavaScript逻辑错误:Element.className返回的是类名字符串,不存在toggle方法,切换元素类需要使用Element.classList接口提供的toggle方法。
  2. CSS选择器错误:.sidenav:active是CSS原生激活伪类,仅在元素被鼠标按住的短暂时间内生效,和JS逻辑要添加的自定义.active类完全不匹配。

修正后代码

JavaScript代码

let btn = document.querySelector("#btn");
let sidenav = document.querySelector(".sidenav");
    
btn.onclick = function(){
    sidenav.classList.toggle("active");
}

CSS代码

.sidenav{
    position: fixed;
    top: 0;
    left:0;
    height: 100%;
    width: 78px;
    box-shadow: -1px -2px 30px black;
    padding: 6px 14px;
    border: 4px white solid;
    border-radius: 20px;
    transition: all 1s ease;
}
/* 替换伪类为自定义类选择器 */
.sidenav.active{
    width: 240px;
}

效果说明

修改完成后,首次点击菜单按钮会给侧边栏添加active类,导航栏保持240px展开状态;再次点击会移除active类,导航栏恢复78px折叠状态,符合预期交互效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:45:03