我已经运行了JQuery,并且我想使用scrollTop动画将窗口移回顶部附近(大约240px,虽然有点变化)作为AJAX调用的回调,它将取代大量的HTML页面上的内容。
我正在使用:
$("html, body").animate({ scrollTop: someNumericalVariable });
我遇到的问题是,当这段代码没有延迟或超时运行时,窗口会做一个非常小的滚动动画到一个不太理想的位置。当我添加一些任意延迟(至少1到几秒)时,窗口可能会或可能不会在期望的位置结束,但动画几乎不是动画(它更像是2个单独的scrollTop调用 - 它会很快向上跳,等一下,再向上跳到正确的位置。)
当我单独运行代码时(不是作为一堆HTML渲染中间的回调),动画似乎正常工作。
有什么想法吗?提前谢谢。
答案 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,我们将会查看发生了什么。