繁体   English   中英

Vanilla JavaScript:滚动到页面顶部

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM