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

使用_hyperscript绑定scroll事件监听器失效,点击等事件正常,求原因

解决_hyperscript scroll事件不生效的问题

scroll事件确实是标准HTML DOM事件,但它的触发逻辑和click这类事件存在差异:

  • 当整个页面滚动时,scroll事件实际触发在window对象上,而非body元素,且该事件默认不会冒泡到body,所以你绑定在body上的scroll监听器无法接收到事件。
  • click、touchstart这类事件会正常向上冒泡到body,因此绑定在body上能正常触发。

可行的解决方案

方案1:绑定到window对象

这是处理页面全局滚动的正确方式,直接把事件绑定到window上:

<body _="on window.scroll alert('something')">
<!-- content -->
</body>

方案2:让body成为滚动容器

如果你的场景是body内部局部滚动(而非整个页面),可以给body设置滚动属性,让它自身产生滚动条:

body {
  height: 100vh;
  overflow: auto;
}

此时body内部滚动时,你原本绑定在body上的scroll事件就能正常触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:49:49