我正在 try catch 鼠标事件。这是我正在尝试的代码:
if(window.addEventListener) { document.addEventListener('DOMMouseScroll', zoom_handler, false); }
else { document.onmousewheel = zoom_handler; }
alert("test"); //I see this alert so I assume the code above it is run
//...
function zoom_handler(event) {
var delta = 0;
if (!event) event = window.event;
// normalize the delta
if (event.wheelDelta) {
// IE and Opera
delta = event.wheelDelta / 60;
} else if (event.detail) {
// W3C
delta = -event.detail / 2;
}
alert("Delta: " + delta);
}
唯一的问题是当我尝试在我的页面上上下滚动时我什么也没看到,所以我想我没有正确捕获事件。作为引用,我一直在尝试遵循本教程:http://viralpatel.net/blogs/2009/08/javascript-mouse-scroll-event-down-example.html
感谢您的帮助。
最佳答案
我猜你实现它的方式只适用于某些浏览器,例如 Chrome。你试过把
document.onmousewheel = zoom_handler;
在 else 语句之外? 这样一来,它就可以在我运行在 OSX Lion (Mac) 上的 Chrome 浏览器上运行。
这是我在电脑上测试的方式:
if(window.addEventListener) { document.addEventListener('DOMMouseScroll', zoom_handler, false); }
document.onmousewheel = zoom_handler;
alert("test"); //I see this alert so I assume the code above it is run
希望修复它。
关于JavaScript 无法检测鼠标滚轮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791995/