jquery滚动速度

Ste*_*eng 2 jquery scroll

我正在使用以下代码根据鼠标位置滚动图层:

$(".icons").animate({scrollTo:x},duration);
Run Code Online (Sandbox Code Playgroud)

然而,它可以找到,我发现向右移动时滚动速度要快得多.还注意到,如果滚动条在左侧开始并向右滚动一点,然后再向右滚动它,它真的很慢.我假设使用持续时间参数不能最好地控制实际滚动速度,但我不确定如何控制速度.无论滚动条在哪里,我都希望保持一致的速度.

有什么指针吗?

谢谢

Nic*_*ver 6

问题是持续时间,而不是你传递的速度,所以你需要将持续时间基于你需要移动的距离,如下所示:

$(".icons").each(function() {
  var duration = Math.abs($(this).scrollLeft() - x) * 2; //2ms per pixel moved
  $(this).animate({scrollLeft: x}, duration);
});
Run Code Online (Sandbox Code Playgroud)

您可以根据需要调整该常量,但这是基本前提,获取您需要移动的距离(绝对值)并将该像素数乘以某个常数(如果需要),即每像素毫秒数.