javascript - 检测哪个滚动条随着滚轮事件而移动

标签 javascript dom-events

假设我们有一个简单的 HTML 页面,其中包含带有垂直滚动条的 div 容器。整个页面还包含垂直滚动条:

scrollbars

我想禁用主体滚动条功能(但它应该是可见的)并允许用户仅滚动容器的内容。

我知道禁用滚动的唯一选项是捕获 wheel 事件并调用 preventDefault 。但是它会禁用所有滚动条。

是否可以获取哪个滚动会受到事件的影响(容器的还是全局的)并有条件地调用 preventDefault 方法?

最佳答案

下面的解决方案是用 jQuery 编写的,但也可以用普通的 Javascript 等效代码来完成:

$(document).on('DOMMouseScroll mousewheel', context, function(ev) {
    //Do some stuff
    ev.stopPropagation(); //Prevents ancestors of context of handling the event
});

关于javascript - 检测哪个滚动条随着滚轮事件而移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186018/

相关文章:

javascript - 尝试在 window.resizeTo 之后摆脱 Chrome 中的滚动条

javascript - 扩展原型(prototype)而不是声明整个对象的优点

javascript - 你能解释一下javascript中的对象和数组算法吗

javascript - 需要从数据库中删除记录并使用jsp中的复选框提醒已删除的id

javascript - eventListener 适用于应该位于函数私有(private)范围内的变量

javascript - 在 Javascript 中使用 dataTransfer 对象拖放 li 元素

javascript - JQGrid 4.3.2 读取JSON数据时getAccessor函数出错

javascript - 分配静态类属性会在 babel 上触发错误

javascript - 无法使用@ViewChildren 选择在 Angular 2 模板中声明的组件

javascript - 从 Javascript 模块中获取事件目标