在vue 过渡中,仅用JavaScript 过渡的时候,在 enter 和 leave 中必须使用 done 进行回调。否则after-enter和 after-leave不会调用,并且enter 和 leave将被同步调用,过渡会立即完成。
但在 leave中使用done回调时,
离开状态也会立即执行,即使不调用done()函数,leave参数done必须传,不传也会立即删除元素导致动画不执行,但不调用done函数, after-leave又不能执行,导致元素样式display属性不为none,消失不了
这跟官网有点出入,不知道什么原因造成的
总结了两种解决办法:
<template>
<div class="test">
<transition
:css='false'
name="Carousel"
@before-enter=" beforeEnter"
@enter="enter"
@after-enter="afterEnter"
@before-leave="beforeLeave"
@after-leave="afterLeave"
@leave="leave"
>
<div class="s" @click="handleClick" v-show ="isShow" ref="s" ></div>
</transition>
<button @click="handleClick">切换</button>
</div>
</template>
<script>