xyz*_*xyz 109 html javascript
如何获取和设置当前网页滚动位置?
我有一个很长的表单,需要根据用户操作/输入进行刷新.当发生这种情况时,页面会重置到最顶层,这对用户来说很烦人,因为他们必须向下滚动到他们所处的位置.
如果我可以在页面重新加载之前捕获当前滚动位置(在隐藏的输入中),我可以在重新加载后将其设置回来.
tob*_*bek 129
当前接受的答案不正确 - document.documentElement.scrollTop始终在Chrome上返回0.这是因为WebKit body用于跟踪滚动,而Firefox和IE使用html.
要获得当前位置,您需要:
document.documentElement.scrollTop || document.body.scrollTop
Run Code Online (Sandbox Code Playgroud)
您可以将当前位置设置为1000px,如下所示:
document.documentElement.scrollTop = document.body.scrollTop = 1000;
Run Code Online (Sandbox Code Playgroud)
或者,使用jQuery(当你在它时动画它!):
$("html, body").animate({ scrollTop: "1000px" });
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 98
你正在寻找这家document.documentElement.scrollTop酒店.
gyo*_*gyo 24
浏览器如何显示当前窗口滚动坐标存在一些不一致之处.Mac和iOS上的谷歌浏览器似乎总是在使用或jQuery 时返回.0document.documentElement.scrollTop$(window).scrollTop()
但是,它与以下内容一致:
// horizontal scrolling amount
window.pageXOffset
// vertical scrolling amount
window.pageYOffset
Run Code Online (Sandbox Code Playgroud)
我使用了HTML5本地存储解决方案...我的所有链接都调用了一个函数,它在更改window.location之前设置了它.
localStorage.topper = document.body.scrollTop;
Run Code Online (Sandbox Code Playgroud)
并且每个页面都在body的onLoad中:
if(localStorage.topper > 0){
window.scrollTo(0,localStorage.topper);
}
Run Code Online (Sandbox Code Playgroud)