vue路由跳转

image.png
.slide-right-enter-active{
transition: all .4s ease;
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
position: absolute;
top: 0px;
width: 100%;
height: 100%;
z-index: 1000000;
}
.slide-left-enter-active{
transition: all .4s ease;
position: absolute;
top: 0px;
opacity: 1;
width: 100%;
height: 100%;
}
.slide-right-leave-active{
position: absolute;
transition: all .4s ease;
width: 100%;
height: 100%;
opacity: .5;
}
.slide-left-leave-active {
transition: all .4s ease;
transform: translate3d(100%, 0px, 0px);
-ms-transform: translate3d(100%, 0px, 0px);
-moz-transform: translate3d(100%, 0px, 0px);
-webkit-transform: translate3d(100%, 0px, 0px);
-o-transform: translate3d(100%, 0px, 0px);
position: absolute;
top: 0px;
width: 100%;
height: 100%;
z-index: 1000000;
}
.slide-right-enter {
transform: translate3d(100%, 0px, 0px);
-ms-transform: translate3d(100%, 0px, 0px);
-moz-transform: translate3d(100%, 0px, 0px);
-webkit-transform: translate3d(100%, 0px, 0px);
-o-transform: translate3d(100%, 0px, 0px);
visibility: visible;
}
.slide-right-leave {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
visibility: hidden;
}
.slide-left-enter {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
opacity: .5;
visibility: visible;
}
.slide-left-leave {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
visibility: hidden;
}
为啥跳转的时候不会盖住上一个页面,有什么办法吗

<template>
<div id="app">

<keep-alive>
  <transition :name="slideName" :duration="{ enter: slideTime, leave: slideTime }">
    <router-view></router-view>
  </transition>
</keep-alive>

</div>
</template>

<script>
export default {
name: "App",
data() {

return {
  slideName: 'slide-right',
  slideTime: 400
};

},
watch: {

// 使用watch 监听$router的变化
$route(to, from) {
  this.slideName = this.$slideName
}

}
};
</script>

<style>

app {

text-align: center;
width: 100%;
overflow: hidden;
position: relative;
}
.slide-right-enter-active{
transition: all .4s ease;
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
position: absolute;
top: 0px;
width: 100%;
height: 100%;
z-index: 1000000;
}
.slide-left-enter-active{
transition: all .4s ease;
position: absolute;
top: 0px;
opacity: 1;
width: 100%;
height: 100%;
}
.slide-right-leave-active{
position: absolute;
transition: all .4s ease;
width: 100%;
height: 100%;
opacity: .5;
}
.slide-left-leave-active {
transition: all .4s ease;
transform: translate3d(100%, 0px, 0px);
-ms-transform: translate3d(100%, 0px, 0px);
-moz-transform: translate3d(100%, 0px, 0px);
-webkit-transform: translate3d(100%, 0px, 0px);
-o-transform: translate3d(100%, 0px, 0px);
position: absolute;
top: 0px;
width: 100%;
height: 100%;
z-index: 1000000;
}
.slide-right-enter {
transform: translate3d(100%, 0px, 0px);
-ms-transform: translate3d(100%, 0px, 0px);
-moz-transform: translate3d(100%, 0px, 0px);
-webkit-transform: translate3d(100%, 0px, 0px);
-o-transform: translate3d(100%, 0px, 0px);
visibility: visible;
}
.slide-right-leave {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
visibility: hidden;
}
.slide-left-enter {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
opacity: .5;
visibility: visible;
}
.slide-left-leave {
transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
visibility: hidden;
}
</style>

阅读 1.6k
1 个回答

一般来说,router-view只会渲染一个页面,检查下这两个页面是否存在重复代码(复制粘贴问题?)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题