动画窗口滚动

时间:2011-02-09 18:36:31

标签: javascript animation scroll

您好 我使用以下方法以编程方式滚动Web文档:

window.scrollBy(0, delta)

scrollBy的当前实现只是将文档跳转到新位置。有没有办法动画这个?我特意使用webkit,jQuery(或任何其他javascript框架)不是一个选项。

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:13)

您可以通过调用间隔来为其设置动画:

setInterval(function() {
    window.scrollBy(0, 5);
}, 13);

这当然会一遍又一遍地做,所以你需要进行条件检查,何时取消间隔。可能看起来像:

var timerID = setInterval(function() {
    window.scrollBy(0, 5);

    if( window.pageYOffset >= 500 )
        clearInterval(timerID);
}, 13);

答案 1 :(得分:0)

每次调用此函数时,无论pageYOffset在何处,它都会跳转window.scrollBy(0,5)中的像素数。例如,如果pageYOffset是300px,它将跳转到305px。

但是这个问题可以通过移动if并添加else来解决
如此:

var timerID = setInterval(function() {
    if( window.pageYOffset <= 500 )
        window.scrollBy(0, 5);

    else
        clearInterval(timerID);
}, 1);