vue中的动画和Jq的动画出路比较大。在Jq中动画的实现多为通过操作DOM实现,而在vue这种数据驱动的框架中,操作DOM并不方便也不被推荐。vue做动画是通过css3来实现的,或者配合vue的一个库animated.css
先看一个简单的vue配合css实现的简单动画
1 | <input type="button" value="动画按钮" @click="toggle" /> |
1 | #box { |
1 | new Vue({ |
效果图如下:
下面简单介绍用animated.css制作动画
1 | <div id="box"> |
1 | new Vue({ |
效果图如下:
动画实现在vue2.0中的改变
class的定义
.fade-enter{}//初始状态
.fade-enter-leave{}//动画变化显示状态(初)
.fade-leave{}//
.fade-leave-active{}//动画变化结束状态(末)
fade-enter到fade-enter-active是动画的从无到有,.fade-leave到.fade-leave-active是动画从有到无,可实际理解为两个active才是进入离开的状态,两个enter只是初始。
例子:
1 | p{ |
1 | <div id="box"><input type="button" value="点击显示隐藏" @click="show=!show"> |
1 | new Vue({ |
效果图如下:
配合animate做简单动画的方式
1 | <div id="box"> |
1 | p{ |
1 | new Vue({ |
效果图如下:
简单的vue做动画的方法就是这样…如果要做复杂的动画,还需要配合animated.css来做。