java中的接口是类吗
374
2023-01-31
Vue路由切换时的左滑和右滑效果示例
transition
首先看看官网 淡入淡出动画的例子:
Toggle
hello
new Vue({
el: '#demo',
data: {
show: true
}
})
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
左右切换效果
css部分
我们要实现的是左右切换的效果,所以要定义两种动画(http://左滑和右滑)
.transitionBody{
transition: all 0.15s ease; /*定义动画的时间和过渡效果*/
}
.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部分
在DCznhVue组件中,data必须是一个函数,将对象 {transitionName: ‘transitionLeft'} 挂载到Vue实例中,然后我们可以监听路由的 to 和 from 来判断此时应该左滑还是右滑,来动态切换transition的name值。
export default {
data() {
return {
transitionName: 'transitionLeft'
};
},
watch: {
'$route' (to, from) {
const arr = ['/goods','/ratings','/seller'];
const compare = arr.indexOf(to.path)>arr.indexOf(from.path);
this.transitionName = compare ? 'transitionLeft' : 'transitionRight';
}
}
}
点击链接体验一下: https://zc95.github.io/demo/vue-sell
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~