如何取消浏览器对页面滚动条位置的记录?

具体是酱紫的

打开页面,滚动了一定距离,例如500px,然后刷新页面,这是页面会自动滚动到500px的位置而不是回到顶端。

如果需要每次打开/刷新页面时页面不进行自动滚动,需怎么解决?

阅读 12.7k
6 个回答
  1. 页面加载成功后通过 window.scrollTo(0, 0) 页面加载成功然后重置滚动位置会明显看到一个滚动的效果
  2. 在页面 unload 的时候将页面重新定位到 顶部和方法 1 类似也会明显看到滚动的效果,但是是在用户刷新页面下一次浏览器之前,会比方案 1 好
  3. 终极方案 history.scrollRestoration = 'manual';,告诉浏览器本次重置滚动位置为手动的,不使用默认行为 MDN History 地址
window.onload = function() {
  window.scrollTo(0, 0);
} // 如果有jQuery则最好用 $(function(){ ... });

解决办法就是网页加载时强行做一个“回到顶端”,这并不难想。不过你确定要取消掉浏览器的这个默认行为吗?

这个是浏览器控制的吧?
F5刷新会记录位置,试试点击一下地址栏,然后回车

頁面用 Canvas 渲染即可。

不過呢,也可以加載之後,用腳本控制,滾回頂端。

還可以把所有要滾動內容放入 div overflow: auto 中~

主动定位一下试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题