Javascript 如何确定事件是否从滚动条触发

Javascript 如何确定事件是否从滚动条触发,javascript,jquery,event-handling,Javascript,Jquery,Event Handling,我有一个div,在其中我实现了类似iPad的滑动 查看我的意思(只需在div中单击并拖动鼠标。) 我想防止在有人使用滚动条时发生刷卡(单击滚动条,然后从左向右移动,仍然会发生刷卡) 简而言之,我需要的是(!event.wasTriggeredFromScrollbar)是否可以用于任何事件触发器(在本例中为mousedown/move/up) 欢迎使用jQuery和常规的“OLJavaScript”回答 编辑:使其更有意义。以下是我如何解决这一问题的,因为这似乎实际上是不可能的 步骤1:捕获鼠标

我有一个div,在其中我实现了类似iPad的滑动

查看我的意思(只需在div中单击并拖动鼠标。)

我想防止在有人使用滚动条时发生刷卡(单击滚动条,然后从左向右移动,仍然会发生刷卡)

简而言之,我需要的是(!event.wasTriggeredFromScrollbar)是否可以用于任何事件触发器(在本例中为mousedown/move/up)

欢迎使用jQuery和常规的“OLJavaScript”回答


编辑:使其更有意义。

以下是我如何解决这一问题的,因为这似乎实际上是不可能的

步骤1:捕获鼠标向下事件。将scrollLeft和scrollTop的当前位置存储到变量中

步骤2:MouseMove事件中,检查scrollLeft和scrollTop的当前位置,并将它们与变量进行比较。如果它们不同,那么取消您要执行的任何操作。如果它们是相同的,MouseDown事件不是由滚动条触发的(或者任何会改变scrollLeft和scrollTop的东西,例如另一个动画),您可以自由地执行您想要的操作


快乐编码

您是否尝试了解用户单击/点击的位置,并对照滚动条的位置进行检查?但这并不容易。@muistooshort不完全是,这是在JSFiddle
@rlemon上发生的,这只是一个快速的键入错误,我的错。在我所有的实际脚本中,我都正确地使用了它。请注意,scrollLeft和scrollTop是实际元素的属性,而不是事件的属性。