java多个物体动画_vue实现多个元素或多个组件之间动画效果

本文探讨了Vue中元素过渡动画失效的原因,重点在于DOM复用如何影响效果,并提供了通过设置key值避免复用、使用v-enter/v-leave-to和v-enter-active/v-leave-active来实现动画渐变的解决方案,以及在组件切换和动态组件场景中的应用实例。
摘要由CSDN通过智能技术生成

多个元素的过渡

.v-enter,.v-leave-to{

opacity: 0;

}

.v-enter-acitve,.v-leave-active{

opacity: opacity 1s;

}

hello world
bye world

切换

var vm = new Vue({

el:'#app',

data:{

show:true

},

methods:{

handleClick:function(){

this.show = !this.show;

}

}

})

//前端全栈学习交流圈:866109386

//面向1-3经验年前端开发人员

//帮助突破技术瓶颈,提升思维能力

按照之前的写法方式,渐隐渐出的效果并没有出现该有的效果,那么为什么呢? 在if else两个元素切换的时候,会尽量的复用dom,正是vue,dom的复用,导致动画的效果不会出现,如果想要vue不去复用dom,之前也说过,怎么做呢,给两个div不同的key值就行了

hello world
bye world

这样就可以有个明显的动画效果,多个元素过渡动画的效果。

transition还提供了一个mode属性,in-out是先显示再隐藏,out-in是先隐藏再显示

多个组件的过渡

.v-enter, .v-leave-to {

opacity: 0;

}

.v-enter-acitve, .v-leave-active {

transition: opacity 1s;

}

切换

Vue.component('child',{

template:'

child
'

})

Vue.component('child-one',{

template:'

child-one
'

})

var vm = new Vue({

el:'#app',

data:{

show:true

},

methods:{

handleClick:function(){

this.show = !this.show;

}

}

})

//前端全栈学习交流圈:866109386

//面向1-3经验年前端开发人员

//帮助突破技术瓶颈,提升思维能力

这个就是多个组件的过渡,采用的是上面的方式,替换子组件,那么我们换一种方式,用动态组件

.v-enter, .v-leave-to {

opacity: 0;

}

.v-enter-acitve, .v-leave-active {

transition: opacity 1s;

}

切换

Vue.component('child',{

template:'

child
'

})

Vue.component('child-one',{

template:'

child-one
'

})

var vm = new Vue({

el:'#app',

data:{

type:'child'

},

methods:{

handleClick:function(){

this.type = (this.type === 'child' ? 'child-one' : 'child')

}

}

})

这样也实现了多个组件的过渡效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值