jQuery的滚动速度

问题描述:

我用下面的代码根据鼠标的位置来滚动层:jQuery的滚动速度

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

但是它的工作原理发现,我发现,要权当滚动速度更快。还注意到,如果滚动条从左边开始滚动到右边一点,然后再滚回来,他再次确实很慢。我假设真正的滚动速度不是最好的控制使用持续时间的参数,但我不知道如何控制速度。无论滚动条在哪里,我都想要保持一致的速度。

任何指针?

感谢

+0

它实际上应该是'scrollTop',而不是'scrollTo'。错字? – jAndy 2010-07-19 14:09:27

+0

对不起,斑点。我实际上使用scrollLeft ..水平滚动...我已经看过scrollTo插件和平滑滚动,但我想避免使用大量的插件... – 2010-07-19 14:19:07

的问题是,这是一个持续时间,而不是你传递的速度,所以你需要立足于你需要移动,这样的距离,持续时间:

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

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

+0

感谢尼克,这是我以后。 ..仍然必须调整我的代码升技,但你已经钉在头上...干杯! – 2010-07-19 14:37:41

+0

只是为了更新你,我已经实现了上述,它工作的一种享受。非常感激! – 2010-07-19 15:55:40

+0

@Steven - 优秀:)总是很高兴听到一个问题的解决。 – 2010-07-19 16:07:24