切换到新路由时,页面要滚动到顶部或保持原先的滚动位置怎么做呢


vue-router 页面切换后保持在页面顶部而不是保持原先的滚动位置的办法:
https://www.cnblogs.com/kugeliu/p/7172042.html

vue-router有提供一个方法scrollBehavior,它可以使切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。

这个功能只在 HTML5 history 模式下可用。

const router = new VueRouter({
  routes: [...],
  scrollBehavior (to, from, savedPosition) {
    // return 期望滚动到哪个的位置
  }
})
{ x: number, y: number }
{ selector: string }
scrollBehavior (to, from, savedPosition) {
  return { x: 0, y: 0 }
}
 
scrollBehavior (to, from, savedPosition) {
  if (savedPosition) {
    return savedPosition
  } else {
    return { x: 0, y: 0 }
  }
}

 


vue2.0路由切换后页面跳转后新页面滚动位置不变BUG(滚动条回到顶部的位置):
https://blog.csdn.net/ZHIYUANfL/article/details/79241655

解决办法很简单,如下,直接监测watch路由变化,然后将body的滚动距离scrollTop赋值为0。

export default {
        watch:{
            '$route':function(to,from){
           document.body.scrollTop = 0;
                 document.documentElement.scrollTop = 0;
           }

        }
    }


返回到上次滚动位置:
https://blog.csdn.net/yan263364/article/details/84402595


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM