Javascript:有没有办法检测用户滚动,但没有通过代码滚动(即scrollLeft等)?

时间:2011-08-16 15:56:33

标签: javascript scroll

因此。我正在制作一个带按钮的页面;单击按钮可以平滑地将页面(实际上是容器)滚动到位于更右侧的锚点。这是通过container.scrollLeft完成的。

现在我正在尝试这样做,以便当用户手动滚动(滚动条,鼠标滚轮,箭头键等)时,自动平滑滚动会立即停止。

我已尝试使用container.addEventListener('scroll',StopScroll,false);执行此操作,但这会触发任何滚动,甚至通过代码完成,而不仅仅是由用户完成。 有没有办法只检测用户滚动?或者也许是解决方法?

另外,我宁愿不使用Jquery,但如果这是唯一的方法,我会切换到它。

1 个答案:

答案 0 :(得分:3)

我感觉DOM滚动和事件滚动以相同的方式管理,因此无法区分。

但是,您可以挂钩进入mousedown / keydown并在按住键或鼠标按钮时更新变量,并且只有在设置了该变量时才执行scrollStop?