
元素进入的样式:
- v-enter:进入的起点
- v-enter-active:进入过程中
- v-enter-to:进入的终点
元素离开的样式:
- v-leave:离开的起点
- v-leave-active:离开过程中
- v-leave-to:离开的终点
注意事项:
transition只能放置一个元素 多个用transition-groupv-enter-active和v-leave-active可以放动画,就是一整个过程,没动画情况下才要写满进入到离开的样式。定义动画的类
appear 初始渲染的过渡
name修改前缀
css不匹配类名
钩子函数&小球半程动画


注意: 如果想一开始进来就执行动画, 那done函数必须延迟 - setTimeout第三方类库
自定义类名
自定义类
<style>.a {opacity: 0;}.b {margin-left: 500px;opacity: 1;}.c {transition: all 3s;}</style><body><div id="app"><button @click="toggle">点我</button>//enter-class 入场前//enter-to-class 入场后//enter-active-class 入场过程中<transition appear enter-class="a" enter-to-class="b" enter-active-class="c"><div class="box" v-show="isShow"></div></transition></div></body>
使用Animate
使用Velocity第三方类库
transition-group 列表动画
注意点
<transition-group>默认渲染为span标签,通过tag属性修改一般出现动画混乱 都是key重复的问题
<style> .v-enter, .v-leave-to { opacity: 0; } .v-enter-to, .v-leave { opacity: 1; } .v-enter-active, .v-leave-active { transition: all 2s; } </style> <body> <div id="app"> //多个元素用transition-group //tag将transition-group渲染为对应的ul //style设置了动画效果 //注意添加key <transition-group appear tag="ul"> <li v-for="(person,index) in persons" :key="person.id"> <input type="checkbox" @click="del(index)"> <span> {{person.name}}</span> </li> </transition-group> </div> </body> <script> let app = new Vue({ el: "#app", data: { isShow: true, persons: [{ name: "amamda", id: 1 }, { name: "jim", id: 2 }, { name: "ivy", id: 3 }] }, methods: { del(index) { this.persons.splice(index, 1) } } }) </script>
