用vue自带的 <transition> 实现过渡效果
- 利用 CSS 过渡或者动画来实现
- 利用 JavaScript 的钩子函数来实现
基本使用
- 设置name属性(如:name =“xxx”),在组件过渡过程中,会有六个CSS类名进行切换
- v-enter: 定义进入过渡的开始状态。在元素被插入时生效,只应用一帧后立刻删除。
- v-enter-active: 定义过渡的状态。在元素整个过渡过程中作用,在元素被插入时生效,在 transition/animation 完成之后移除。 可以用来定义过渡的过程时间,延迟和曲线函数。
- v-enter-to: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入一帧后生效(于此同时 v-enter 被删除),在 transition/animation 完成之后移除。
- v-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除。
- v-leave-active: 定义过渡的状态。在元素整个过渡过程中作用,在离开过渡被触发后立即生效,在 transition/animation 完成之后移除。 这个类可以被用来定义过渡的过程时间,延迟和曲线函数。
- v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发一帧后生效(同时 v-leave 被删除),在 transition/animation 完成之后移除。
举个栗子:
html
<div id="app">
<button @click="show = !show">点我试试</button><br>
<transition name="fade">
<img style="width:200px;height:160px" v-show="show" src="../assets/img/bg.jpg">
</transition>
</div>
css
.fade-enter-active, .fade-leave-active{
transition: all 0.5s ease
}
.fade-enter, .fade-leave-active {
opacity: 0
}
js
new Vue({
el:'#app4',
data:{
show:true
}
})