vue中怎么使animate动画重复运行?
// 添加active class时,会有3s动画效果
<div :class="{'active': item.active}"
</div>
// active class的动画css
&.active {
animation: keyClick 3s linear;
}
// 按键事件里逻辑
if(item.active) {
// 每次按键都先判断是否有active了,如果存在,则先移除
item.active = false;
}
item.active = true;
我在按键时先移除active class,然后再添加上,需要的效果是每次按键都有3s的动画效果,但实际只有第一次按键有动画效果,后面按键都不会再触发动画了,要怎么解决呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
vue 中状态更新并不会同步渲染 DOM,也就是说设置
item.active = false
时 DOM 并未更新,classactive
并未移除。代码立即执行item.active
最终渲染的结果是 classactive
一直存在。因此,需要使用this.$nextTick(() => {item.active = true;})
保证item.active = true
在 DOM 更新后再执行。官方文档对这部分的介绍:https://cn.vuejs.org/v2/guide...