如何做一个平滑滚动?

时间:2010-09-23 17:52:01

标签: javascript

我有以下工作代码使我的滚动条元素可见:

var next = elements.item(i+1);
var xpcomInterface = scroll.boxObject.QueryInterface(
Components.interfaces.nsIScrollBoxObject);
xpcomInterface.ensureElementIsVisible(elements);

但我想做一个平滑滚动(慢或不慢)。知道怎么做吗?

更新

顺便说一下,它适用于Mozilla环境。

3 个答案:

答案 0 :(得分:0)

最简单的方法是使用setTimeout函数,只需将元素的div上的topleft值移动一小部分,直到达到所需的位置是。

你可能想要试验它移动的速度,因为有平滑的权衡,以及它应该在一段合理的时间内到达终点。

更新

我忘记了,您需要继续拨打setTimeout,直到您到达最终目的地,否则它将不会重绘浏览器窗口。

答案 1 :(得分:0)

我不知道该怎么做,但这里有一个名为“Smooth Scroll”的Chrome扩展程序,您可以在其中查看代码,看看他们做了什么,也许会让您朝着正确的方向前进。 / p>

PS我喜欢这个扩展。

答案 2 :(得分:0)

jQuery .animate()加速动作can be kind of smooth(参见演示动画与相对移动)。 with a plug-in,还有其他缓和方程可供使用。