Saj*_*kar 16 javascript event-handling dom-events
我所要做的就是在DIV滚动时调用一个函数.为简单起见,我没有指定任何其他内容.另外,我只关注与DOM兼容的浏览器scroll(不是IE).
我的问题是滚动处理程序永远不会被调用.如果我替换了clickto DIV,它会在我点击时起作用.不知何故滚动不起作用.
请注意:我不能用scroll:(
这是我的代码:
HTML:
<div id="test">--long content--</div>
Run Code Online (Sandbox Code Playgroud)
JS:
function myFunc() {
console.log('in myFunc');
}
var objTable = document.getElementById("test");
objTable.addEventListener("scroll", function () {
myFunc();
}, false);
Run Code Online (Sandbox Code Playgroud)
小提琴:
Und*_*ned 23
这是因为窗口不是div而是滚动.尝试将元素侦听器更改为div的父级(在本例中为窗口),如下所示.
window.addEventListener("scroll", function () {
myFunc();
}, false);
Run Code Online (Sandbox Code Playgroud)
Jer*_*yal 12
如果尽管尽了最大努力,滚动事件仍未触发,那么您可以尝试滚轮事件:
document.addEventListener('wheel', (event) => {console.log('i scrolled')});
Run Code Online (Sandbox Code Playgroud)
我的情况类似。该代码是正确的,但无法正常工作,因为,
window.addEventListener("scroll", function () {
myFunc();
}, false);
Run Code Online (Sandbox Code Playgroud)
滚动事件未触发。因为我的身体在滚动而不是documentElement。
我只是height: 100%从我的身体标签中删除,然后滚动事件开始触发。
就我而言,我height: 100%体内有一个。因为我只想在一个特殊的 div 中应用滚动事件。
然后,这解决了问题:
document.querySelector('#myDiv').addEventListener('scroll', () => {
console.log('scroll event fired!')
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28426 次 |
| 最近记录: |