jQuery scrollTop动画作为HTML呈现

时间:2011-10-19 08:45:32

标签: jquery animation scrolltop

我已经运行了JQuery,并且我想使用scrollTop动画将窗口移回顶部附近(大约240px,虽然有点变化)作为AJAX调用的回调,它将取代大量的HTML页面上的内容。

我正在使用:

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

我遇到的问题是,当这段代码没有延迟或超时运行时,窗口会做一个非常小的滚动动画到一个不太理想的位置。当我添加一些任意延迟(至少1到几秒)时,窗口可能会或可能不会在期望的位置结束,但动画几乎不是动画(它更像是2个单独的scrollTop调用 - 它会很快向上跳,等一下,再向上跳到正确的位置。)

当我单独运行代码时(不是作为一堆HTML渲染中间的回调),动画似乎正常工作。

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

在ajax调用完成并处理完数据后,您要做的是为scrollTop()设置动画。例如:

$.ajax({
  url: "data.html",
  success: function(html) {
    $('#content').append(html); // process data first

    var someNumericalVariable = randomCalculation(); // do whatever calculation you need to do to figure out scrolltop
    $("html, body").animate({ scrollTop: someNumericalVariable }); // animate scrolltop
  }
});

如果某些内容不适合您,请发布一些代码或制作一个jsFiddle,我们将会查看发生了什么。