Vue路由切换时的左滑和右滑效果示例

前端之家收集整理的这篇文章主要介绍了Vue路由切换时的左滑和右滑效果示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何实现Vue路由切换时的左滑和右滑效果,因为原作者ustbhuangyi老师的两个慕课项目中都没有这样的效果,于是突发奇想要做这个功能,看了看QQ、微信都没这样的效果,最后发现SegmentFault(思否) 和掘金两个app都有这样的效果,就以此为参考开始做了。

transition

首先看看淡入淡出动画的例子:

左右切换效果

CSS部分

我们要实现的是左右切换的效果,所以要定义两种动画(左滑和右滑)

.transitionLeft-enter,.transitionRight-leave-active {
-webkit-transform: translate(100%,0);
transform: translate(100%,0);
/当左滑进入右滑进入过渡动画/
}

.transitionLeft-leave-active,.transitionRight-enter {
-webkit-transform: translate(-100%,0);
transform: translate(-100%,0);
}

HTML部分

这里的 keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM,我们要把它也包裹在transition标签内,否则页面将重新渲染,切换的动画也会卡顿

JS部分

在Vue组件中,data必须是一个函数,将对象 {transitionName: ‘transitionLeft'} 挂载到Vue实例中,然后我们可以监听路由的 to 和 from 来判断此时应该左滑还是右滑,来动态切换transition的name值。

arr.indexOf(from.path); this.transitionName = compare ? 'transitionLeft' : 'transitionRight'; } } }

点击链接体验一下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文链接:https://www.f2er.com/vue/32113.html

猜你在找的Vue相关文章