前言
Vue3的动画学习笔记
Vue3的动画实质上就是在恰当的时机添加和去除class
为整体定义动画
name:指定CSS前缀
v:缺省值
type:指定优先使用哪种动画
auto:缺省值,自动
transition:指定优先使用transition动画,Vue会监听DOM的transitionend事件来确定动画结束
animation:指定优先使用animation动画,Vue会监听DOM的animationend事件来确定动画结束
event:使用自定义事件
duration:指定动画持续时间,单位秒
duration="1000":指定进入和离开的持续时间
duration="{ enter: 1000, leave: 1000 }":分别指定进入和离开的持续时间
mode:指定动画模式
out-in:先离开,再进入
in-out:先进入,再离开
appear:首次渲染
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <template> <transition name="" type="" mode="" appear> <div></div> </transition> <transition duration="1000"> <div></div> </transition> <transition v-bind:duration="{ enter: 1000, leave: 1000 }"> <div></div> </transition> </template>
<style> .v-enter-from { // 进入开始样式 opacity: 0; } .v-enter-to { // 进入结束样式 opacity: 1; } .v-enter-active { // 进入进行中样式 transition: opacity 1s ease; } .v-leave-from { // 离开开始样式 opacity: 1; } .v-leave-to { // 离开结束样式 opacity: 0; } .v-leave-active { // 离开进行中样式 transition: opacity 1s ease; } </style>
|
指定CSS前缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <template> <transition name="n"> <div></div> </transition> </template>
<style> .n-enter-from { // 进入开始样式 opacity: 0; } .n-enter-to { // 进入结束样式 opacity: 1; } .n-enter-active { // 进入进行中样式 transition: opacity 1s ease; } .n-leave-from { // 离开开始样式 opacity: 1; } .n-leave-to { // 离开结束样式 opacity: 0; } .n-leave-active { // 离开进行中样式 transition: opacity 1s ease; } </style>
|
为部分子组件定义动画
tag:指定动画效果的元素名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <template> <transition-group tag="li" name=""> <ul> <li></li> <li></li> </ul> </transition-group> </template>
<style> .v-enter-from { // 进入开始样式 opacity: 0; } .v-enter-to { // 进入结束样式 opacity: 1; } .v-enter-active { // 进入进行中样式 transition: opacity 1s ease; } .v-leave-from { // 离开开始样式 opacity: 1; } .v-leave-to { // 离开结束样式 opacity: 0; } .v-leave-active { // 离开进行中样式 transition: opacity 1s ease; } </style>
|
完成