Javascript 如何做一个平滑的卷轴?

Javascript 如何做一个平滑的卷轴?,javascript,Javascript,我有以下工作代码使滚动框的一个元素可见: var next = elements.item(i+1); var xpcomInterface = scroll.boxObject.QueryInterface( Components.interfaces.nsIScrollBoxObject); xpcomInterface.ensureElementIsVisible(elements); 但我想做一个平滑的卷轴(慢或不慢)。知道怎么做吗 更新 顺便说一句,它是针对Mozilla环境的。最简

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

var next = elements.item(i+1);
var xpcomInterface = scroll.boxObject.QueryInterface(
Components.interfaces.nsIScrollBoxObject);
xpcomInterface.ensureElementIsVisible(elements);
但我想做一个平滑的卷轴(慢或不慢)。知道怎么做吗

更新


顺便说一句,它是针对Mozilla环境的。

最简单的方法就是使用
setTimeout
函数,并将元素div上的
顶部和
左侧的
值移动一小部分,直到到达您想要的位置

您可能想尝试一下让它移动的速度有多快,因为平滑和它应该在一段合理的时间内到达终点这两个事实之间存在权衡

更新:


我忘了,您需要一直调用
设置超时
,直到您到达最终目的地,否则它不会重新绘制浏览器窗口。

我不知道具体怎么做,但这里有一个Chrome扩展名为“”在这里,您可以潜在地通过代码来查看它们的功能,并可能使您朝着正确的方向前进


PS我喜欢这个扩展。

jQuery
.animate()
带有加速运动(请参阅演示以获得相对运动的动画)。此外,它还可以使用其他缓和方程

如果xpcomInterface有一个isVisible()方法会更容易。。我正在寻找如何检查它。必须有一种方法可以获取滚动框中按钮的[xy],然后使用超时将其滚动到[xy]。您在关于xpcomInterface的评论中提到过,它是针对Mozilla的,所以这是针对firefox扩展的?