console
var app = new Vue({
el: '#app',
data() {
return {
show: true
}
},
methods: {
beforeEnter(el) {
el.style.transform='translate(80px,80px)';
},
enter(el,done){
el.offsetWidth;
el.style.transition='all 1.5s ease';
el.style.transform='translate(0,0)';
done()
},
afterEnter(el){
console.log('afterEnter');
},
beforeLeave: function (el) {
el.style.transform='translate(0,0)';
},
leave: function (el, done) {
el.offsetWidth;
el.style.transition='all 3s ease';
el.style.transform='translate(80px,80px)';
setTimeout(done,3000);
},
afterLeave: function (el) {
console.log('afterLeave');
},
}
});
<div id="app">
<button @click="show = !show">
动态组件
</button>
<transition
@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
v-on:before-leave="beforeLeave"
v-on:leave="leave"
v-on:after-leave="afterLeave"
>
<div id="ball" v-show="show">hello</div>
</transition>
</div>
进入页面,由于默认数据是true,点击时变成false,
所以第一次点击时,进行离场动画。调用leave等函数钩子...