我正在研究一个网络虚拟鼓包,该鼓包会为每个触摸的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