滚动条恢复行为

问题

Vue路由跳转,目标页面会继承起始页面的滚动条的位置。

history.scrollRestoration

有这样一个 API 可以修改浏览器的滚动恢复行为,它有两个值:
auto
将恢复用户已滚动到的页面上的位置。
manual
未还原页上的位置。用户必须手动滚动到该位置。

使用

const scrollRestoration = history.scrollRestoration
if (scrollRestoration === 'manual') {
  console.log('未还原页面上的位置,用户将需要手动滚动');
}
scrollRestoration = 'auto' // 恢复页面滚动恢复行为

兼容性如下

image.png

window.scrollTo

实际使用发现 history.scrollRestoration 在 Vue 路由跳转上使用并不好使
只好在目标页面增加window.scrollTo(0, 0)手动将页面滚动的顶部。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容