【发布时间】:2014-10-21 03:09:09
【问题描述】:
我注意到 mousewheel 事件在使用最新版本的 Chrome 时在正文而不是任何其他元素上使用鼠标滚轮时不会触发。 (38.0.2125.104 m)。
使用绝对定位元素时会发生这种情况。
您可以在this fiddle 中通过滚动白色区域而不是红色区域来复制它。
知道为什么会这样吗?有什么解决办法吗?
使用的小提琴代码:
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;
}
【问题讨论】:
-
这仍然是一个问题(至少在 Mac Catalina 上)。这些建议都不起作用。在 Chrome 中拦截鼠标滚轮事件的任何解决方案?
标签: javascript jquery google-chrome mousewheel