Wes Bos鼓机项目removeTransition函数无法执行问题求助
可能的问题原因及修复方案
你提供的removeTransition函数未触发,可按以下顺序排查:
function removeTransition(e) { if (e.propertyName !== 'transform') return; this.classList.remove('playing'); }
- 事件绑定错误
必须为所有需要响应动画结束的鼓键元素绑定transitionend事件,绑定代码参考:
若选择器写错、绑定的事件名拼写错误(比如写成// 确保选择器和你HTML中鼓键的类名一致 const allKeys = document.querySelectorAll('.key'); allKeys.forEach(key => key.addEventListener('transitionend', removeTransition));transitionEnd大小写错误)、绑定对象不是实际添加playing类的元素,都会导致回调不触发。 - CSS配置不匹配
函数逻辑仅响应transform属性的过渡结束事件,需要核对样式规则:- 鼓键基础样式中
transition属性需包含transform,例如:
.key { transition: all 0.07s ease; }- 激活态
playing类需要修改transform属性,例如:
若过渡规则未覆盖.playing { transform: scale(1.1); border-color: #ffc600; box-shadow: 0 0 1rem #ffc600; }transform,或者激活态没有修改transform,函数会被触发但直接在第一行判断后返回,看起来就像没有执行。 - 鼓键基础样式中
- 类名拼写错误
确认按键按下时添加的类名完全为playing,无大小写错误、拼写错误,否则不会触发对应过渡效果,自然不会抛出transitionend事件。
内容的提问来源于stack exchange,提问作者Karl
相关产品推荐
相关产品推荐

