[英]Vanilla JavaScript: Scroll to Top of Page
我可能错过了一些东西,但我无法获得window.scrollTo(0,0)
移动到页面顶部。
我正在实施一个粘性的aside
它运作良好。 它使用.getBoundingClientRect()
来获取初始位置。
但是,如果页面部分滚动,并且我刷新页面,它会错误地读取位置,并且位于错误的位置。
我虽然通过在开头执行window.scrollTo(0,0)
来解决这个问题,所以页面位于顶部,而aside
则处于正确的位置。
当我运行代码时, window.scrollTo(0,0)
似乎没有任何区别。
让重新加载的窗口从顶部开始的正确方法是什么?
我在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),并没有提及或显示使用object参数的示例,您可以将行为设置为平滑。 我只是尝试了代码,它仍然适用于chrome和firefox,对象参数仍然在规范中。
或者在Vanilla中,您可以使用带有scrollTo(x,y)函数的window.onload事件
window.onload = function(){
window.scrollTo(0,0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.