jquery滚动速度

时间:2010-07-19 14:03:31

标签: jquery scroll

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

$(".icons").animate({scrollTo:x},duration);

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

任何指针?

由于

1 个答案:

答案 0 :(得分:6)

问题在于持续时间,而不是你传递的速度,所以你需要根据你需要移动的距离来确定持续时间,如下所示:

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

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