从div而不是transitionend删除动画的另一种方法是什么?

时间:2020-04-19 21:05:45

标签: javascript

我正在研究一个网络虚拟鼓包,该鼓包会为每个触摸的div(或键)触发一个动画和一个声音。每次用户单击或触摸一个键,声音都从0重新开始,这部分很好,但是我正在为动画苦苦挣扎。

为一个键完成动画后,我使用由事件 transionend 触发的功能将其删除。但是问题是:如果用户连续多次快速按下一个键,则过渡端不会发生(因为动画没有结束),然后类“键动画”不会消失。 [![不会在S上播放动画的鼓包] [2]] [2]

audio.play();
keysound.classList.add('key-animation');

function removeTransition(e) {
     if (e.propertyName !== 'transform') return;
     this.classList.remove('key-animation');
}

let keys = document.querySelectorAll('.key');
keys.forEach(key => key.addEventListener('transitionend', removeTransition));```


  [1]: https://i.stack.imgur.com/NVtxj.png
  [2]: https://i.stack.imgur.com/hmFzA.png

0 个答案:

没有答案