如何防止鼠标滚轮事件的默认操作
How to Prevent Default action of Mousewheel event
我正在努力构建一个 d3.js 条形图,该条形图将允许我通过将具有固定宽度和高度的 svg 元素包装在具有溢出属性的较小div 内来在 x 轴上滚动。此可视化构建在一个处理数据的平台上,并提供一个 JavaScript 代码编辑器来创建可视化。发布代码后,条形图将在 htmldiv 元素中呈现。
呈现条形图的页面具有使用鼠标滚轮时触发的默认缩放事件。由于我想使用鼠标滚轮在条形图中滚动,因此我尝试通过在代码中包含以下语句来阻止触发默认缩放操作:
$(vizhtmlelement).mousewheel(function() {
return false;
});
这可以成功删除缩放功能,但它也会阻止使用鼠标滚轮滚动工作。有没有办法在保持鼠标滚轮滚动的同时阻止鼠标滚轮缩放的发生?
在缩放函数 .call() 的任何元素上,都需要将其鼠标滚轮行为设置为 null。因此,如果您从 或 的 或 ID 为 "yourElement" 进行 .call(zoom),那么它看起来像这样:
d3.select("#yourElement")
.call(myZoom)
.on("dblclick.zoom", null)
.on("mousewheel.zoom", null)
.on("DOMMouseScroll.zoom",null);
请注意,我还禁用了双击缩放,因为您可能也希望禁用它。
相关文章:
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 使用jQuery自动完成阻止默认操作
- ASP.Net MVC 脚本无法使用控制器的默认操作 URL.使用控制器/操作 URL 也是如此
- 在阻止默认操作时启用菜单的链接
- 仅针对左滑动/右滑动事件阻止默认操作
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- IE7在按压时”;输入“;键不会阻止默认操作
- 是否阻止发生默认操作?(JQueryMobile)
- 替换超链接默认操作以加载 AJAX 请求
- 浏览主干中的默认操作
- 如何阻止 confirm() 的默认操作 JavaScript
- 如何防止鼠标滚轮事件的默认操作
- iPad 阻止仅在首次单击链接时执行默认操作
- 如何防止默认操作函数按钮(F4,F5等)在Angular js中
- 删除默认
操作 - 阻止对运行AJAX的超链接执行默认操作
- 阻止对所有输入执行默认操作
- 允许对目标事件执行默认操作,并阻止对父级执行默认操作
- 调用对象上特定事件的默认操作
- 如何确保链接'的默认操作始终处于禁用状态