Nuxt.js路由切换时如何实现无可见滚动跳转至新路由顶部?
Nuxt 2 路由切换无滚动直达顶部解决方案
针对你使用的Nuxt 2.15.8、Vue 2.7.10版本,以下方法可实现切换路由时直接显示新页面顶部,且无可见滚动效果:
- 修改
app/router.scrollBehavior.js文件内容:
export default function (to, from, savedPosition) { // 强制瞬间滚动到顶部,无动画 window.scrollTo({ top: 0, left: 0, behavior: 'instant' }) // 返回null阻止Nuxt触发默认滚动逻辑 return null }
- 若仍存在滚动痕迹,添加全局CSS禁用平滑滚动:
在项目的全局样式文件(如assets/css/main.css)中加入:
html { scroll-behavior: auto !important; }
原理说明:通过window.scrollTo的instant行为强制浏览器瞬间定位到顶部,同时返回null关闭Nuxt自身的滚动处理逻辑;全局CSS则确保页面不会继承任何平滑滚动的样式规则。
内容的提问来源于stack exchange,提问作者Gabriel Veres
相关产品推荐
相关产品推荐

