我试图阻止页面元素捕获鼠标滚轮事件以导致滚动。
我期望 false
作为最后一个参数来获得预期的结果,但是在这个“canvas”元素上使用鼠标滚轮仍然会导致滚动:
this.canvas.addEventListener('mousewheel', function(event) {
mouseController.wheel(event);
}, false);
在此“canvas”元素之外,需要发生滚动。在内部,它必须只触发 .wheel()
方法。
我做错了什么?
最佳答案
您可以通过在处理程序 (OG) 末尾返回 false
来实现此目的。
this.canvas.addEventListener('wheel',function(event){
mouseController.wheel(event);
return false;
}, false);
或者使用event.preventDefault()
this.canvas.addEventListener('wheel',function(event){
mouseController.wheel(event);
event.preventDefault();
}, false);
更新为使用 wheel
事件,因为现代浏览器已弃用 mousewheel
,如评论中指出的那样。
问题是关于防止滚动不提供正确的事件,因此请检查您的浏览器支持要求以选择适合您需求的正确事件。
使用更现代的方法选项进行了第二次更新。
关于Javascript:捕获鼠标滚轮事件并且不滚动页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313142/