new Vue({
el: '#root',
data: {
show: true
},
methods:{
handleBeforeEnter(el) {
el.style.opacity = 0
},
handleEnter(el, done) {
Velocity(el,{
opacity:1
},{
duration:1000,
complete:done
})
},
handleAfterEnter(el) {
console.log('动画结束')
}
}
})
<div id="root">
<transition
@before-enter="handleBeforeEnter"
@enter="handleEnter"
@after-enter="handleAfterEnter"
>
<h1 v-show="show">hello world</h1>
</transition>
<button @click="show = !show">toggle</button>
</div>