香草 JavaScript:滚动到页面顶部
Vanilla JavaScript: Scroll to Top of Page
我可能漏掉了什么,但我无法window.scrollTo(0,0)
移至页面顶部。
我正在实施一个粘性 aside
,它运行良好。它使用 .getBoundingClientRect()
来获取初始位置。
但是,如果页面滚动了一部分,我刷新页面,它会错误地读取位置,并定位到错误的位置。
虽然我会通过在开头执行 window.scrollTo(0,0)
来解决这个问题,以便页面位于顶部,并且 aside
位于正确的位置。
当我运行代码时,window.scrollTo(0,0)
似乎没有任何区别。
让重新加载的 window 从顶部开始的正确方法是什么?
我已经在 Mac 上的 Firefox 上对其进行了测试。 Chrome 和 Safari 给出了类似的行为。
请不要jQuery。
您是否尝试过在 scrollTo 之前等待页面加载?尝试使用 window.onload
window.onload = function(){
window.scrollTo(0,0);
}
在 javascript 中使用滚动效果转到页面顶部更容易一些:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
注意
我刚刚在更新我的答案时检查了 mozilla 文档,我相信它已经更新了。现在该方法是 window.scroll(x-coord, y-coord) 并且没有提及或显示使用对象参数的示例,您可以在其中将行为设置为平滑。我刚刚尝试了代码,它在 chrome 和 firefox 中仍然有效,并且对象参数仍在规范中。
或者在 Vanilla 中,您可以使用 window.onload 事件和 scrollTo(x,y) 函数
window.onload = function(){
window.scrollTo(0,0);
}
我可能漏掉了什么,但我无法window.scrollTo(0,0)
移至页面顶部。
我正在实施一个粘性 aside
,它运行良好。它使用 .getBoundingClientRect()
来获取初始位置。
但是,如果页面滚动了一部分,我刷新页面,它会错误地读取位置,并定位到错误的位置。
虽然我会通过在开头执行 window.scrollTo(0,0)
来解决这个问题,以便页面位于顶部,并且 aside
位于正确的位置。
当我运行代码时,window.scrollTo(0,0)
似乎没有任何区别。
让重新加载的 window 从顶部开始的正确方法是什么?
我已经在 Mac 上的 Firefox 上对其进行了测试。 Chrome 和 Safari 给出了类似的行为。
请不要jQuery。
您是否尝试过在 scrollTo 之前等待页面加载?尝试使用 window.onload
window.onload = function(){
window.scrollTo(0,0);
}
在 javascript 中使用滚动效果转到页面顶部更容易一些:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
注意
我刚刚在更新我的答案时检查了 mozilla 文档,我相信它已经更新了。现在该方法是 window.scroll(x-coord, y-coord) 并且没有提及或显示使用对象参数的示例,您可以在其中将行为设置为平滑。我刚刚尝试了代码,它在 chrome 和 firefox 中仍然有效,并且对象参数仍在规范中。
或者在 Vanilla 中,您可以使用 window.onload 事件和 scrollTo(x,y) 函数
window.onload = function(){
window.scrollTo(0,0);
}