【发布时间】:2016-03-19 19:35:32
【问题描述】:
我有一个位于 div 中的传单地图,并在其顶部有一个图层列表。图层列表通常很长,并且由于设置了 overflow:scrollbar 的 CSS 属性而显示滚动条。
如果您单击滚动条上的任意位置,则拖动不会传播到下面的地图,但是如果您单击并拖动滚动条,它会传播到地图并开始被拖动。
这仅适用于 IE10+,它在 Firefox、Chrome 等中按预期工作。
如何防止这种行为?
【问题讨论】:
-
是否可以在滚动条上捕获点击事件?我的图层列表包含可点击元素,我不想停止这些事件。
-
没有。 JS 的作用域是直到窗口,窗口外的任何东西都不能被捕获。但是如果你想停止滚动,你可以检查 window.scroll 事件并进行相应处理
-
但滚动条在 div 上是内联的 - 这算作窗口外吗?
-
也不是滚动事件——它是滚动条上的点击事件触发了对底层的拖动
标签: javascript css dom-events scrollbar event-propagation