方法一:
先理解事件发生的过程,v-enter,v-enter-to,v-leave,v-leave-to。其中v-enter,v-leave-to代表开始以及结束时的状态。v-enter-active,v-leave-active代表动画的过程。
![](https://img.haomeiwen.com/i18851057/5cb0a95e7b3ef5ad.png)
定义动画第一步把要做动画的语句添加到transition中,其中name可以定义前缀,下面的事件在添加动画时就可以写my-enter,my-leave-to,从而可以设置不同区域具有不同的动画效果。
![](https://img.haomeiwen.com/i18851057/d593265a55090415.png)
第二步就是在style里添加动画样式
![](https://img.haomeiwen.com/i18851057/f493c1401bb1ff47.png)
方法二:
用animate.css第三方库来实现动画。
第一步引入库
![](https://img.haomeiwen.com/i18851057/2ba5288ce5cb5efd.png)
第二步:
在transition里写入动画对应的类,animated可以在下边之写一次,:duration定义事件,离开时间,进入时间。这样就可以不用在样式里边写入内容。
![](https://img.haomeiwen.com/i18851057/1c8df9beb60366a7.png)
注意:
在使用v-for的时候动态添加列表,要使用<transtion-group> 里边appear属性可以设置列表出现时的样式,tag属性设置列表的标签
![](https://img.haomeiwen.com/i18851057/e6d93a99def75093.png)
实现小球的半场动画
使用钩子函数beforeEnter,enter,afterEnter。下边定义相应的函数,注意传参,以及enter时候的done参数,以及el.offsetWidth.
js钩子
<transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:after-enter="afterEnter"
v-on:enter-cancelled="enterCancelled"
v-on:before-leave="beforeLeave"
v-on:leave="leave"
v-on:after-leave="afterLeave"
v-on:leave-cancelled="leaveCancelled"
>
</transition>
![](https://img.haomeiwen.com/i18851057/42dfdd61e97bb1a1.png)
当只用 JavaScript 过渡的时候,在 enter 和 leave 中必须使用 done 进行回调。否则,它们将被同步调用,过渡会立即完成。
网友评论