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似乎总是返回。0
document.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);
}