就是像app那样左右滑动切换模块,还有就是切换的过程中路由该怎么办?
实在没什么思路
<transition :name="transitionName">
<router-view/>
</transition>
左右滑动的话 在组件中this.transitionName = 'slide-left' //右滑slide-right
.slide-left-leave-active,.slide-left-enter-active,.slide-right-leave-active,.slide-right-enter-active{
position: absolute !important;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 99;
transition: all 0.3s ease;
}
.slide-left-enter,.slide-right-leave-to{
transform: translateX(100%);
}
//便于理解
// .slide-left-enter-to,.slide-left-leave,.slide-right-enter-to,.slide-right-leave{
// transform: translateX(0);
// }
.slide-left-leave-to,.slide-right-enter {
transform: translateX(-100%);
}
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答975 阅读✓ 已解决
我这边刚好最近在做项目,实现了楼主想要的类似动效,唯一不足的是当返回的时候和iOS原生应用还是有些差别的,简单来说可以这样做
首先我们假设入口文件是app.vue,那么接下来所有的其他路由,都必须是app.vue的子组件
app.vue可以这么写
项目js入口文件 index.js可以这么定义
此时Index和Detail就是APP.vue的子路由的组件了,接下来我们实现动效,在APP.vue文件里监听$route的变化,做好切换的类
APP.vue
此时我们能得知,当路由切换的时候,路径深的会从右边划出来,路径浅的会从左边划出来,有点类似slider的感觉,此时我们只需要完成css的书写就大功告成了
index.less
参考资料
http://router.vuejs.org/zh-cn...
https://cn.vuejs.org/v2/guide...
上面两个楼主如果看完了,再回过头看代码就能理解了,我这里只是提供了方法,还希望楼主在理解的基础上使用