Javascript 鼠标滚轮事件不发生';t在镀铬车身上点火

Javascript 鼠标滚轮事件不发生';t在镀铬车身上点火,javascript,jquery,google-chrome,mousewheel,Javascript,Jquery,Google Chrome,Mousewheel,我注意到当使用最新版本的Chrome时,在身体上使用鼠标滚轮而不是在任何其他元素上使用鼠标滚轮时,mousewheel事件不会触发。(38.0.2125.104米) 使用绝对定位元素时会发生这种情况 您可以通过在白色区域而不是红色区域中滚动来复制它 知道为什么会这样吗?有什么解决办法吗 小提琴使用的代码: addMouseWheelHandler(); function addMouseWheelHandler() { if (document.addEventListener) {

我注意到当使用最新版本的Chrome时,在身体上使用鼠标滚轮而不是在任何其他元素上使用鼠标滚轮时,mousewheel事件不会触发。(38.0.2125.104米)

使用绝对定位元素时会发生这种情况

您可以通过在白色区域而不是红色区域中滚动来复制它

知道为什么会这样吗?有什么解决办法吗

小提琴使用的代码:

addMouseWheelHandler();

function addMouseWheelHandler() {
    if (document.addEventListener) {
        document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
        document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
    } else {
        document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
    }
}



function MouseWheelHandler(e) {
    e = window.event || e;

    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.deltaY || -e.detail)));
    console.log("mouse wheel!" + delta);

    return false;
}

这是因为你们的身体并没有高度,所以你们在文档外滚动。如果子元素处于绝对位置,则父元素将不会扩展到其子元素的大小。尝试添加如下内容:

html, body {
    min-height: 2000px;
}

或者从
位置更改内容:绝对

这似乎是一个bug。事件侦听器附加到文档,因此它应该应用于整个文档,而不管主体元素的高度如何

作为解决方法,您可以添加以下代码:

document.body.style.height= document.body.scrollHeight+'px';

警告:查看document.body.scrollHeight以查看更改并非易事。我最好在主体中添加一个包装器元素,并在该元素上观察鼠标滚轮,这仍然是一个问题(至少在MacCatalina上)。这些建议都不管用。在Chrome中拦截鼠标滚轮事件的任何解决方案?