【发布时间】:2026-02-08 04:50:01
【问题描述】:
div 元素是否没有onscroll 事件处理程序?
我页面上的行为似乎并不表明 div onscroll 事件处理程序已被识别。
<div id='bd' onscroll='alert("Scroll Called");'></div>
另外,
根据 DOM 事件冒泡,div 滚动事件是否会累积到窗口滚动事件?
【问题讨论】:
标签: javascript html scroll dom-events
div 元素是否没有onscroll 事件处理程序?
我页面上的行为似乎并不表明 div onscroll 事件处理程序已被识别。
<div id='bd' onscroll='alert("Scroll Called");'></div>
另外,
根据 DOM 事件冒泡,div 滚动事件是否会累积到窗口滚动事件?
【问题讨论】:
标签: javascript html scroll dom-events
根据您使用的 HTML 版本,您可以改用 onwheel 事件。
onscroll 事件仅在满足以下所有条件时才有效:
overflow: auto、overflow: scroll、overflow-y: scroll等所以onscroll 事件并不适合检测一般的鼠标滚轮移动。
请注意,onwheel 事件是 HTML 5 中的新事件。According to w3schools,不过,它得到了广泛的支持。
【讨论】:
JQUERY scroll() 可以帮助你。
$("#gridTableContainer").scroll(function() {
HandlingScrollingStuff();
});
【讨论】:
我也对这个问题摸不着头脑,直到我开始了解更多关于 DOCTYPE 指令的知识。最新版本的 HTML 规范不支持 onscroll 属性。它会在 Visual Studio 中显示为无效语法。它可能适用于许多浏览器,但它仍然是无效代码。
相反,您可以使用 Javascript 或 jQuery 来创建事件。我使用这样的方法在两个单独的 div 上同步滚动:
$("#gridTableContainer").scroll(function() {
HandlingScrollingStuff();
});
【讨论】:
是的,但元素需要有一个滚动条。您可以使用overflow: auto(当内容足够高时为您提供滚动条)或overflow: scroll 给它一个。 (这些也可以专门为 x & y 设置overflow-y: scroll...)
虽然它们不会在 div 滚动到底部后冒泡,但窗口将开始滚动。 (基本上,如果div可以滚动它会拦截滚动事件,但如果它不能,那么它会转到页面)
【讨论】: