2017-09-15 119 views
1

我可能错过了一些东西,但我不能让window.scrollTo(0,0)移动到页面顶部。香草JavaScript:滚动到页首

我正在实施一个粘性很强的aside。它使用.getBoundingClientRect()来获得初始位置。

但是,如果页面部分滚动,并且我刷新页面,它会错误地读取位置,并且位置错误。

我虽然我会通过在开始时执行window.scrollTo(0,0)来解决这个问题,以便页面位于顶部,并且aside位于正确的位置。

当我运行代码时,window.scrollTo(0,0)似乎没有任何区别。

重新加载窗口从顶部开始的正确方法是什么?

我已经在Mac上的Firefox上测试过它。 Chrome和Safari提供了类似的行为。

请不要jQuery。

+0

我建议将'新刷新的窗口'重命名为'重新加载窗口',以避免混淆。事实上,如果您向下滚动并重新加载页面,浏览器将尽最大努力回滚到之前的位置,以确保良好的用户体验。 – GottZ

+0

您是否尝试过在scrollTo之前等待页面加载?尝试使用'window.onload' – TKoL

+0

你确定窗口是滚动的元素吗?您是否确定在您调用scrollTo时窗口会滚动? – bluehipy

回答

1

您是否尝试过在scrollTo之前等待页面加载?尝试使用window.onload

window.onload = function(){ 
    window.scrollTo(0,0); 
}