},
leaveCancelled: function (el) {
// handle cancellation
}
})
过渡的 CSS 类名
类名的添加和切换取决于 transition 特性的值。比如 transition=”fade”,会有三个 CSS 类名:
1..fade-transition 始终保留在元素上。
2..fade-enter 定义进入过渡的开始状态。只应用一帧然后立即删除。
3..fade-leave 定义离开过渡的结束状态。在离开过渡开始时生效,在它结束后删除。
如果 transition 特性没有值,类名默认是 .v-transition, .v-enter 和 .v-leave。
自定义过渡类名
1.0.14 新增
我们可以在过渡的 JavaScript 定义中声明自定义的 CSS 过渡类名。这些自定义类名会覆盖默认的类名。当需要和第三方的 CSS 动画库,比如 Animate.css 配合时会非常有用:
<div v-show=”ok” class=”animated” transition=”bounce”>Watch me bounce</div>
Vue.transition('bounce', {
enterClass: 'bounceInLeft',
leaveClass: 'bounceOutRight'
})
显式声明 CSS 过渡类型
1.0.14 新增
Vue.js 需要给过渡元素添加事件侦听器来侦听过渡何时结束。基于所使用的 CSS,该事件要么是 transitionend,要么是 animationend。如果你只使用了两者中的一种,那么 Vue.js 将能够根据生效的 CSS 规则自动推测出对应的事件类型。但是,有些情况下一个元素可能需要同时带有两种类型的动画。比如你可能希望让 Vue 来触发一个 CSS animation,同时该元素在鼠标悬浮时又有 CSS transition 效果。这样的情况下,你需要显式地声明你希望 Vue 处理的动画类型 (animation 或是 transition):
Vue.transition('bounce', {
// 该过渡效果将只侦听 `animationend` 事件
type: 'animation'
})过渡流程详解
当 show 属性改变时,Vue.js 将相应地插入或删除 <div> 元素,按照如下规则改变过渡的 CSS 类名:
•如果 show 变为 false,Vue.js 将:
1.调用 beforeLeave 钩子;
2.添加 v-leave 类名到元素上以触发过渡;
3.调用 leave 钩子;
4.等待过渡结束(监听 transitionend 事件);
5.从 DOM 中删除元素并删除 v-leave 类名;
6.调用 afterLeave 钩子。
•如果 show 变为 true,Vue.js 将:
1.调用 beforeEnter 钩子;
2.添加 v-enter 类名到元素上;
3.把它插入 DOM;
4.调用 enter 钩子;
5.强制一次 CSS 布局,让 v-enter 确实生效。然后删除 v-enter 类名,以触发过渡,回到元素的原始状态;
6.等待过渡结束;
7.调用 afterEnter 钩子。










