Answers:
您在寻找document.documentElement.scrollTop物业。
getScrollingPosition()将值存储在隐藏变量中。然后在刷新页面的html中使用<body onLoad="window.scrollTo(x,y),其中x和y是隐藏值中的值!
document.documentElement.scrollTop始终返回0。document.body.scrollTop但是,似乎可以正常工作。另一方面,在Ubuntu上使用Firefox,反之亦然-使用,您将获得0,使用body,将获得正确的数量documentElement。有什么想法吗?
scrollTop属性不适用于所有浏览器,因此此答案不正确。检查window.pageXOffset并window.pageYOffset获得更好的结果。
当前接受的答案不正确- document.documentElement.scrollTop在Chrome上始终返回0。这是因为WebKit body用于跟踪滚动,而Firefox和IE使用html。
要获得当前职位,您需要:
document.documentElement.scrollTop || document.body.scrollTop
您可以将页面下方的当前位置设置为1000px,如下所示:
document.documentElement.scrollTop = document.body.scrollTop = 1000;
或者,使用jQuery(在使用时对其进行动画处理!):
$("html, body").animate({ scrollTop: "1000px" });
window.pageYOffset如果您使用window.scrollBy()或window.scrollTo()方法,则建议使用更清洁的方法。
浏览器在显示当前窗口滚动坐标方面存在一些不一致之处。使用或jQuery 时,Mac和iOS上的Google Chrome似乎总是返回。0document.documentElement.scrollTop$(window).scrollTop()
但是,它与以下各项保持一致:
// horizontal scrolling amount
window.pageXOffset
// vertical scrolling amount
window.pageYOffset
我使用HTML5本地存储解决方案...我所有的链接都调用了一个函数,该函数在更改window.location之前对此进行了设置:
localStorage.topper = document.body.scrollTop;
并且每个页面在主体的onLoad中都有此内容:
if(localStorage.topper > 0){
window.scrollTo(0,localStorage.topper);
}