0

我已经运行了 JQuery,我想使用 scrollTop 动画将窗口移回顶部附近(大约 240 像素,虽然有些可变)作为 AJAX 调用的回调,它将替换上的大量 HTML 内容页。

我在用着:

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

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

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

有任何想法吗?提前致谢。

4

1 回答 1

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,我们将看看发生了什么。

于 2011-10-19T09:47:56.553 回答