我想平滑地向下滚动。我不想为此写一个函数——特别是如果jQuery已经有了一个。


当前回答

你可以使用jQuery动画滚动页面与特定的持续时间:

$("html, body").animate({scrollTop: "1024px"}, 5000);

其中1024px是滚动偏移量,5000是以毫秒为单位的动画持续时间。

其他回答

你可以使用jQuery动画滚动页面与特定的持续时间:

$("html, body").animate({scrollTop: "1024px"}, 5000);

其中1024px是滚动偏移量,5000是以毫秒为单位的动画持续时间。

你可以使用.animate() scrollTop属性,就像这样:

$("html, body").animate({ scrollTop: "300px" });

试试scrollTo插件。

尼克的回答很管用。在animate()调用中指定complete()函数时要小心,因为它将被执行两次,因为你声明了两个选择器(html和body)。

$("html, body").animate(
    { scrollTop: "300px" },
    {
        complete : function(){
            alert('this alert will popup twice');
        }
    }
);

下面是避免双重回调的方法。

var completeCalled = false;
$("html, body").animate(
    { scrollTop: "300px" },
    {
        complete : function(){
            if(!completeCalled){
                completeCalled = true;
                alert('this alert will popup once');
            }
        }
    }
);

但如果你真的想在滚动时添加一些动画,你可以试试我的简单插件(AnimateScroll),它目前支持30多种easing样式