vue中怎么使animate动画重复运行?

发布于 2022-09-13 00:43:19 字数 479 浏览 11 评论 0

// 添加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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔一刀 2022-09-20 00:43:19

vue 中状态更新并不会同步渲染 DOM,也就是说设置 item.active = false 时 DOM 并未更新,class active 并未移除。代码立即执行 item.active 最终渲染的结果是 class active 一直存在。因此,需要使用 this.$nextTick(() => {item.active = true;}) 保证 item.active = true 在 DOM 更新后再执行。

官方文档对这部分的介绍:https://cn.vuejs.org/v2/guide...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文