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 - 为 jquery 中所有选中的行设置 "Select"选项?

javascript - knockout - keyCode 属性未通过包装函数传递

javascript - Javascript 的事件常量?

javascript - dispatchEvent(new Proxy(event, {}) 不起作用

javascript - 网络推送通知到期

javascript - 原型(prototype)链继承

javascript - Visual Studio C++项目中node-gyp包含文件的自动更新路径

javascript - 如何使用 Javascript 代码片段触发 Webhook?

javascript - 我可以在整个 Ember 组件上分配点击事件或 <A> 吗?

javascript - Angular Directive(指令)链接功能