Vue过度(动画),本质走的是CSS3:transtion,animation。
控制器div显示/隐藏,代码如下:
<div id="box">
<input type="button" value="按钮" @click="toggle">
<div id="div1" v-show="isShow"></div>
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#box',
data:{
isShow:false
},
methods:{
toggle(){
this.isShow = !this.isShow;
}
}
});
</script>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
我们已经实现了对div的显示/隐藏,但是没有过渡(动画)效果。
1.单元素/组件的过渡
Vue提供了transition
的封装组件,在下列情况中,可以给任何元素和组件添加”进入”和”离开”过渡动画。
条件渲染 (使用 v-if)
条件展示 (使用 v-show)
动态组件
组件根节点
改造:
<div id="box">
<input type="button" value="按钮" @click="toggle">
<transition name="fade">
<div id="div1" v-show="isShow" transiton="fade"></div>
</transition>
</div>
.fade-enter-active, .fade-leave-active {
transition: opacity .5s
}
.fade-enter, .fade-leave-active {
opacity: 0
}
其他更多过渡动画方法,请看文档:http://cn.vuejs.org/v2/guide/transitions.html