如何使用指针事件仅响应滚动事件?

Ben*_*oft 30 html javascript css jquery scroll

是否可以将指针事件设置为仅对触摸板上的滚动或拖动作出反应?我有一个div'在路上'用于滚动复杂的html排列*我想知道我是否可以限制指针事件只对滚动/鼠标滚轮动作作出反应.

我很想知道我是否正确理解这一点.如果pointer-events:none;意味着所有事件都无效,我如何杀死所有事件但保留一个活动?

我已经设置了一个比它适合的框大的HTML区域,但是如果我要显示滚动条,由于弹出(position:top)元素,它看起来会比它应该更高.这个区域仍然需要滚动才能实现这一点我已经使用jQuery使我的'框滚动'跟随div中的一个不可见的div:

<div id="scrollcontrol"style="overflow-y:auto;overflow-x:hidden;position:absolute;
   top:12px;left:180px;width:40px;height:1300px;">
   <div id="catscrollpos"style="position:absolute;
    top:0px;width:200px;height:2250px;">
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本

$('#scrollcontrol').scroll(function({
  $('#rangetable').css({
  'top':$('#catscrollpos').position().top+'px'
  });
});
Run Code Online (Sandbox Code Playgroud)

Gib*_*boK 1

至于文档中的规范:

当一个元素被应用时pointer-events: none;

该元素永远不是任何鼠标事件的目标,并且任何事件都是无效的;

请看这个演示:

http://jsbin.com/wewosumehi/1/

事件没有被触发,您甚至无法滚动container.

  • 这回答了所提出的问题,但我,我确信OP,想知道是否还有其他方法可以完成此任务。基本上,是否有任何相当于“pointer-events: none”的东西仍然允许滚动?我还希望滚动条是可点击的,但我不确定OP。 (71认同)
  • 那么,有没有办法限制除滚动之外的所有鼠标事件呢? (8认同)
  • 哦,这真是太遗憾了 (5认同)
  • &gt; 事件没有被触发,您甚至无法滚动容器。-- 除了“身体”。当“pointer-events: none;”应用于它时,主体会滚动。 (5认同)