通过 jQuery 动画减慢滚动到顶部事件

IT技术 javascript jquery
2021-02-18 06:47:05

当单击某个锚点时,我希望我的页面转到顶部。

这是我尝试这样做的方法,但它不起作用,它滚动得非常快。

 $('a[href=#top]').click(function () {
        $('body').animate({
                scrollTop: 0
        },
        50);
});

我想慢下来。

4个回答
$('a[href=#top]').click(function(){
    $('html, body').animate({scrollTop:0}, 'slow');
});

也许?

所以你需要 body 和 html 来支持所有浏览器?
2021-04-17 06:47:05
webkit 浏览器使用 body,firefox 使用 html。
2021-05-01 06:47:05
我认为您确实需要,body因为html并非在所有浏览器中都可以使用。
2021-05-04 06:47:05
window 是 veiwport 但你需要为文档 html 设置动画,你也不需要 body $("html").animate({scrollTop: $("#whatever_id_you_want_to_go_to").offset().top}, 1200);
2021-05-10 06:47:05
知道为什么$('html, body')需要吗?我用 尝试过$(window),但它似乎没有任何效果,我有点希望它看到(如果我没记错的话)它是跟踪滚动位置的窗口对象?
2021-05-15 06:47:05

当您将 50 作为第二个参数传递给动画时,即为 50 毫秒。请参阅动画文档。要么传递更大的数字,要么按照 c0mrade 的建议,简单地传递 'slow' 。

您可以设置滚动顶部的时间

$('a[href=#top]').click(function(){
 $('body').animate({
     scrollTop: 0},4000);});
$('a[href=\\#top]').click(function(){
  $('body').animate(
    {
      scrollTop: 0
    }, 
    2000
  );
});

# 应该被转义为 \\#。