Javascript:捕获鼠标滚轮事件并且不滚动页面?

标签 javascript scroll mouse mousewheel

我试图阻止页面元素捕获鼠标滚轮事件以导致滚动。

我期望 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/

相关文章:

javascript - 对象字面量/初始化程序中的自引用

java - Angular 无法解析 Spring 响应

asp.net - 修复了 ASP.NET Gridview 的列标题

带有部分的 UITableViewCell 中的 iOS 6 UITextField 在滚动时得到错误的数据

c# - 捕获表单外的鼠标/键盘事件(在后台运行的应用程序)

javascript - 在特定字符串 javascripts 之前和之后添加文本

javascript - TinyMCE 和 Yii

javascript - 给定一组顶部/底部像素范围,我如何找到滚动到哪个像素范围?

c# - 摆动鼠标

javascript - 如何使用javascript更改鼠标光标而不将鼠标悬停在元素上?