1.动画分为两个阶段-1- 从主页面进入动画-2- 返回主页面2.问题描述:从主页面进入详情页的时候,主页面瞬间销毁,就剩下详情页在动画,导致有动画的时候主页面空白;但是从详情页返回进入主页面的时候,会有一个详情页叠加在主页面上的效果3.问题想在进入详情页的时候,也能有一个详情页叠加在主页面上面的效果(主页面延迟销毁)4.页面截图如下:-1- 进入详情页 -2- 返回主页面 5.求问进入时如何实现类似返回这样的效果?
页面的进出配合css的动画就行了 核心代码 <template> <div id="app"> <transition :name="transitionName"> <keep-alive> <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 prevStamps = from.query.stamps || 0; const nextStamps = to.query.stamps || 0; this.transitionName = prevStamps > nextStamps ? "slide-right" : "slide-left"; } } }; </script> .child-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: border-box; transition-property: transform,opacity; transition-duration: 0.6s; transition-timing-function: ease-out; background-color: #ffffff; display: flex; flex-direction: column; } .slide-left-enter { opacity: 0; transform: translate(100%, 0); } .slide-left-enter-active { z-index: 10; } .slide-left-leave-active { z-index: 0; } .slide-right-leave-active { opacity: 0; transform: translate(100%, 0); z-index: 11; }
页面的进出配合css的动画就行了

核心代码