vue2.0 页面A跳转到页面B,B页面停留在A页面的滚动位置的解决方法

Posted 狂奔的小马扎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue2.0 页面A跳转到页面B,B页面停留在A页面的滚动位置的解决方法相关的知识,希望对你有一定的参考价值。

如果页面A沿Y轴滚动一段距离,然后跳转到页面B;

在进入B页面时,B页面已经滚到页面A的距离,返回页面A,发现A还在之前的滚动位置;

这样体验就很不好,所以我们要进行一些处理;

我的方法是:在路由守卫回调中,设置每次进入路由时,将window的scroll值设置为0;window.scroll(0, 0);代码如下

// 全局路由守卫
router.beforeEach((to, from, next) => {
  // to: Route: 即将要进入的目标 路由对象
  // from: Route: 当前导航正要离开的路由
  // next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
  // A跳转到B,B页面停留在A页面的滚动位置;解决方法:将scrollTop设置为0
  window.scroll(0, 0);
  // nextRoute: 设置需要路由守卫的路由集合
  const nextRoute = [home, good-list, good-detail, cart, profile];
  let isLogin = global.isLogin;  // 是否登录
  // 未登录状态;当路由到nextRoute指定页时,跳转至login
  if (nextRoute.indexOf(to.name) >= 0) {  
    if (!isLogin) {
      console.log(what fuck);
      router.push({ name: login })
    }
  }
  // 已登录状态;当路由到login时,跳转至home 
  if (to.name === login) {
    if (isLogin) {
      router.push({ name: home });
    }
  }
  next();
});

 

就这样简单

以上是关于vue2.0 页面A跳转到页面B,B页面停留在A页面的滚动位置的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

实现从A页面跳转到B页面的tab选项卡的指定页上

vue 实现A 页面跳转到B页面 ,B页面返回的A 页面时 ,保留A页面的数据

vue 实现A 页面跳转到B页面 ,B页面返回的A 页面时 ,保留A页面的数据

一个页面跳转到另一个页面的tab选项卡的指定页上

一个页面跳转到另一个页面的tab选项卡的指定页上,该如何处理

jsp中的submit提交页面的同时跳转到指定那个页面