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

Skrollr引发干预错误致body/html overflow:hidden,网站无法滚动求解决

解决skrollr插件的滚动异常与控制台错误问题

1. 修复body/html被设为overflow: hidden导致无法滚动的问题

skrollr默认会强制修改页面的高度和overflow属性来控制滚动动画,这就是你遇到页面锁死无法滚动的核心原因。解决起来很简单,在初始化skrollr的时候添加forceHeight: false配置项,就能阻止它篡改body和html的样式:

// 初始化skrollr时加入forceHeight配置
var skrollrInstance = skrollr.init({
  forceHeight: false
});

这个配置会让skrollr放弃强制固定页面高度,保留原生的滚动行为,同时依然能正常运行滚动动画效果。

2. 解决"Unable to preventDefault inside passive event listener"控制台错误

这个错误是因为Chrome等现代浏览器对触摸事件的被动监听器机制做了限制,旧版本的skrollr没有适配这个新特性。你可以按以下方式解决:

  • 优先方案:升级skrollr到最新版本:官方后续更新已经修复了这个被动事件监听器的问题,更新插件后错误会自动消失。
  • 临时方案(无法升级时):如果暂时没法升级插件,你可以在初始化时禁用触摸事件支持(如果你的项目不需要在触摸设备上使用skrollr的话):
var skrollrInstance = skrollr.init({
  touchScroll: false,
  forceHeight: false // 记得同时保留上面的滚动修复配置
});

要是你需要触摸设备上的支持,也可以手动修改skrollr.min.js的代码——找到添加touchmove事件监听器的位置,把事件选项改成{ passive: false },不过这种方式需要你能定位到对应的代码片段,而且后续升级插件时需要重新修改,不如直接升级插件来得省心。

最后提醒下,修改完配置后记得清空浏览器缓存再测试,确保新的初始化代码生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:21:46