javascript - 通过单击按钮重复动画

标签 javascript css animation css-animations

每次单击按钮时,我都想重复动画。我试着做点什么 like this .

const dist = document.querySelector('.dist');

document.querySelector('button').addEventListener('click', () => {
  dist.classList.remove('animation');
  dist.classList.add('animation');
});
.dist {
  width: 100px;
  height: 100px;
  background: black;
  margin-bottom: 30px;
}

.animation {
  transform: scale(1.5);
  transition: transform 3s;
}
<div class="dist"></div>
<button type="button">Trigger Animation</button>

但实际上,这个片段只做了一次。

dist.classList.remove('animation');
dist.classList.add('animation');

这部分不应该删除状态并从头开始动画吗?

最佳答案

Updated fiddle .

在添加新类 animation 之前,您应该给删除额外的时间(只需一个小的超时就可以了):

dist.classList.remove('animation');

setTimeout(function(){
    dist.classList.add('animation');
},10);

希望这对您有所帮助。

const dist = document.querySelector('.dist');

document.querySelector('button').addEventListener('click', () => {
  dist.classList.remove('animation');

  setTimeout(function(){
    dist.classList.add('animation');
  },10);
});
.dist {
  width: 100px;
  height: 100px;
  background: black;
  margin-bottom: 30px;
}

.animation {
  transform: scale(1.5);
  transition: transform 3s;
}
<div class="dist"></div>
<button type="button">Trigger Animation</button>

关于javascript - 通过单击按钮重复动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575265/

相关文章:

javascript - 使用 supertest 测试下载是否成功

javascript - 如果克隆选择具有特定值,则使输入字段可见

javascript - 成功功能在ajax中不起作用

javascript - 以相对方式绝对定位 n 个 child ?

html - 如果谷歌字体不可用,如何指定网络安全用户默认字体

javascript - 在上一个事件完成之前使用新数据处理事件

javascript - 从元素中删除类方法

javascript - SVG:<use>、javascript 和动画

javascript - 将鼠标悬停在显示子项的项目上并对其他项目进行动画处理时

jquery - jQuery Word 在文本中替换的动画