vue 的过度动画通过添加 transition 特性,在元素插入删除或者隐藏显示时会被触发, 但是如果我只是想在某项操作后,触发一个元素的 vue 动画该如何实现呢??
click
比如上面的代码,slide-edit-box 的动画会在 editShow 改变时触发,但是我现在想在点击 btn 的时候触发动画效果
<section class="modal-wrap" v-if="showWrap" v-bind:class="show?'active':''"> <p class="yo-modal ani" @click.self="close"></p> <slot></slot> </section>
类似父元素和子元素进行动画,父元素必须等待子元素进行动画结束后才可以消失,使用Vue2.0因为props不再支持双向绑定,如果再使用transition会很难操作,最后直接通过操作class结合watch实现
使用Class 与 Style 绑定
其实vue的transition
配合animate.css效果更佳
可参考下面的例子,没有使用transition。
https://jsfiddle.net/xiaoluob...
可以按普通的css3动画思路来实现。
将transition属性和初始css动画属性定义在一个常驻class上,比如.slide-edit-box
。
然后把动画触发之后的css属性定义在一个新的临时class上,比如.slide-edit-box-anime
。
然后给btn绑定一个给动画dom添加class的方法就可以了。
data () { return { class: '' } }, methods: { anime () { this.class = 'slide-edit-box-anime' } }