检测使用滚轮事件移动了哪个滚动条

时间:2016-12-16 13:57:55

标签: javascript javascript-events

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

scrollbars

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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