
本文详解如何通过 JavaScript 动态控制 document.body.style.overflow 实现子菜单展开时隐藏页面滚动条,并重点解决因 DOM 元素 ID 缺失(如 #navbar 未定义)导致的脚本中断问题。
本文详解如何通过 javascript 动态控制 `document.body.style.overflow` 实现子菜单展开时隐藏页面滚动条,并重点解决因 dom 元素 id 缺失(如 `#navbar` 未定义)导致的脚本中断问题。
在构建响应式侧滑菜单(如用户信息面板)时,一个常见需求是:当子菜单(例如 #login-subMenu)从右侧滑入时,禁止背景页面滚动,提升聚焦体验;关闭时则恢复滚动。但实际开发中,看似逻辑正确的代码却可能因细微 DOM 不匹配而静默失败——最典型的陷阱就是调用 getElementById 获取不存在的元素,进而导致后续脚本中断。
? 根本问题定位:null 引用引发的连锁失效
原代码中存在关键隐患:
var navbar = document.getElementById("navbar"); // ❌ ID "navbar" 不存在!
navbar.classList.remove("sticky"); // ⚠️ TypeError: Cannot read property 'classList' of null
HTML 中仅定义了
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











