首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery .scrollTop();+动画

jQuery .scrollTop();+动画
EN

Stack Overflow用户
提问于 2013-05-10 12:28:20
回答 11查看 761K关注 0票数 182

我将页面设置为单击按钮时滚动到顶部。但首先,我使用了一条if语句来查看页面的顶部是否没有设置为0。如果不是0,我会让页面滚动到顶部。

代码语言:javascript
复制
var body = $("body");
var top = body.scrollTop() // Get position of the body

if(top!=0)
{
  body.animate({scrollTop:0}, '500');
}

现在棘手的部分是在页面滚动到顶部后进行动画处理。因此,我的下一个想法是,找出页面位置。所以我使用控制台日志来找出答案。

代码语言:javascript
复制
console.log(top);  // the result was 365

我得到的结果是365,我猜这是我在滚动到顶部之前的位置数字。

我的问题是,如何将位置设置为0,以便在页面为0时添加另一个运行的动画?

谢谢!

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-05-10 12:34:27

为此,您可以为动画命令设置一个回调函数,该函数将在滚动动画完成后执行。

例如:

代码语言:javascript
复制
var body = $("html, body");
body.stop().animate({scrollTop:0}, 500, 'swing', function() { 
   alert("Finished animating");
});

在警告代码所在的位置,您可以执行更多的javascript来添加更多的动画。

此外,“摇摆”也是用来设定放松的。有关更多信息,请查看http://api.jquery.com/animate/

票数 330
EN

Stack Overflow用户

发布于 2013-05-10 12:42:11

尝试以下代码:

代码语言:javascript
复制
$('.Classname').click(function(){
    $("html, body").animate({ scrollTop: 0 }, 600);
    return false;
});
票数 61
EN

Stack Overflow用户

发布于 2015-02-17 23:21:09

使用以下命令:

代码语言:javascript
复制
$('a[href^="#"]').on('click', function(event) {

    var target = $( $(this).attr('href') );

    if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top
        }, 500);
    }

});
票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16475198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档