我正在使用以下代码根据鼠标位置滚动图层:
$(".icons").animate({scrollTo:x},duration);
然而,它可以找到,我发现向右移动时滚动速度要快得多。还注意到,如果滚动条在左侧开始并向右滚动一点,然后再向右滚动它,它真的很慢。我假设使用持续时间参数不能最好地控制实际滚动速度,但我不确定如何控制速度。无论滚动条在哪里,我都希望保持一致的速度。
任何指针?
由于
答案 0 :(得分:6)
问题在于持续时间,而不是你传递的速度,所以你需要根据你需要移动的距离来确定持续时间,如下所示:
$(".icons").each(function() {
var duration = Math.abs($(this).scrollLeft() - x) * 2; //2ms per pixel moved
$(this).animate({scrollLeft: x}, duration);
});
您可以根据需要调整该常量,但这是基本前提,获取您需要移动的距离(绝对值)并将该像素数乘以某个常数(如果需要),即每像素毫秒数。