请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

路由动画

老师, 因为您没有讲到切换路由时的动画 , 我自行百度做了下。路由动画实现了,但是还是有一些小问题,当mode="in-out"的时候,页面切换时会出现两个页面的重叠,进入动画比较流畅,但返回动画却有一些延迟,点了要等一会儿会儿才会响应,搞不明白了唉

<template>
  <div id="app">
    <transition
      :name="transitionName"
      mode="in-out"
    >

      <keep-alive exclude="Details">
        <router-view class="child-view"></router-view>
      </keep-alive>
      
    </transition>
  </div>
</template>

<script>
export default {
  name: "app",
  data() {
    return {
      transitionName: "slide-left"
    };
  },
  watch: {
    $route(to, from) {
      const toDepth = to.path.split("/").length;
      const fromDepth = from.path.split("/").length;
      this.transitionName = toDepth < fromDepth ? "slide-right" : "slide-left";
    }
  }
};
</script>

<style scoped>
.child-view {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.6s cubic-bezier(0.55, 0, 0.1, 1);
}
.slide-left-enter,
.slide-right-leave-active {
  opacity: 0;
  -webkit-transform: translate(-80px, 0);
  transform: translate(-80px, 0);
}
.slide-left-leave-active,
.slide-right-enter {
  opacity: 0;
  -webkit-transform: translate(100%, 0);
  transform: translate(100%, 0);
}
</style>

正在回答 回答被采纳积分+3

2回答

Dell 2019-06-16 21:32:25

我之前遇到过,但是方案记不得了,你看下,找不到我来帮你解决

0 回复 有任何疑惑可以回复我~
  • 提问者 你畏时光不久 #1
    老师 , 我是解决不了了。我的问题就是,从首页点击进入城市选择页时,页面响应很迅速,迅速的就以向右滑动出现的动画切换到了城市页,但从城市页返回首页时,点击后有很明显一段时间的延迟,然后才响应以动画回到首页。
    
    还有一个问题就是,您不是教我们设置了页面切换时,页面的初始位置嘛,就是scrollBehavior ,当我弄了transition动画后,如果点击切换页面之前,页面不是在最顶部位置,它会先回到顶部,然后才动画切换页面
    回复 有任何疑惑可以回复我~ 2019-06-17 20:30:04
  • 提问者 你畏时光不久 #2
    这个延迟是因为watch监听的延迟吗
    回复 有任何疑惑可以回复我~ 2019-06-17 20:33:01
Dell 2019-06-16 21:32:09

确实有这个问题,但网上有很多这个问题的解决方案,你搜索一下就可以啦,一定有的。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信