使用jQuery恢复页面滚动位置

35 jquery

我有一个页面操作,使用类似于:

$('#thetable tbody').replaceWith(newtbody);
Run Code Online (Sandbox Code Playgroud)

在ajax回调中.有时,如果用户向下滚动页面,则此操作具有向上滚动页面的可理解的副作用.但是替换对用户来说似乎是无缝的,因此再次向下滚动有点烦人.并且由于newtbody通常具有与其替换的垂直高度相同的垂直高度,因此我们应该能够使脚本代替它.

现在,因为我发现执行:

$('body').scrollTop(300);
Run Code Online (Sandbox Code Playgroud)

从JS调试器控制台做我希望它会做的,我认为简单的补救措施是:

var scrollsave = $('body').scrollTop();
$('#thetable tbody').replaceWith(newtbody);
$('body').scrollTop(scrollsave);
Run Code Online (Sandbox Code Playgroud)

但没有快乐.我还没有使用jQuery.ScrollTo.

Jos*_*ola 42

我们遇到了完全相同的问题,以下代码效果很好......

var scroll = $(window).scrollTop();
// yada
$("html").scrollTop(scroll);
Run Code Online (Sandbox Code Playgroud)

  • 需要在Chrome(29)中使用`$(window).scrollTop(scroll);`. (5认同)

小智 29

var position= $(window).scrollTop();

//some things here

$(window).scrollTop(position);
Run Code Online (Sandbox Code Playgroud)

它在IE8和FF中都适用于我.

  • 接受的答案在Chrome 29中不起作用 - 这样做. (5认同)
  • 它也更有意义. (2认同)