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

使用JavaScript切换CSS实现汉堡菜单打开时禁止背景页面滚动

实现方案

你已经提前定义好了禁止滚动的.noscroll样式类,只需要通过JS监听汉堡菜单的开关状态,动态给页面主体切换该类即可实现需求。

步骤1:添加功能代码

把以下JS代码放在你现有搜索功能的<script>标签之后即可:

const menuToggle = document.getElementById('cp_toggle03');
// 监听汉堡菜单切换事件
menuToggle.addEventListener('change', function() {
  if (this.checked) {
    // 菜单打开时禁止背景滚动
    document.body.classList.add('noscroll');
  } else {
    // 菜单关闭时恢复背景滚动
    document.body.classList.remove('noscroll');
  }
});

步骤2:(可选优化)修复蒙层关闭功能

现有代码中点击黑色蒙层无法关闭菜单,是因为对应label的关联属性配置错误,修改如下即可:
找到标签:

<label id="h-menu_black" class="cp_toggle03" for="cp_menuicon"></label>

将for属性值改为菜单开关的id:

<label id="h-menu_black" class="cp_toggle03" for="cp_toggle03"></label>

修改后点击黑色蒙层会自动关闭菜单,滚动状态也会同步恢复。

生效说明

你的.noscroll类已经写在移动端媒体查询规则内,所以上述逻辑只会在触发汉堡菜单的屏幕尺寸(480px-1050px)下生效,不会影响桌面端的正常滚动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 18:54:04