问题1:vue路由切换之后,之前的滚动距离会一直存在,页面没有到顶部。
router.afterEach((to,from,next) => { window.scrollTo(0,0); })
这样解决有如下几个问题
1.scrollTo方法部分在手机上的部分浏览器不支持,也就是不兼容。
2.用scrollTo方法会在苹果手机上会产生返回白屏问题(vue项目在IOS中多次返回会出现一半白屏挡住页面)
最后总结下来还是利用vue-router自带的滚动行为解决 ,官方网址https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html
在定义路由的new Route里添加scrollBehavior方法就可以了
export default new Router({
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return {x: 0, y: 0}
}
},
routes: constantRouterMap
})
滚动也流畅了,路由切换的时候可以到下一页面顶部了
问题2:vue项目(hash模式)嵌入IOS的APP当中,从上一页面A页面进入到下一页面B页