- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经根据 yt 教程制作了钢琴,但我有一些无法解决的问题......当我在第一个按钮上使用鼠标/键盘单击时,它不起作用,其他按钮则工作正常。你知道这段代码的错误在哪里吗?
const WHITE_KEYS = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p']
const BLACK_KEYS = ['2', '3', '5', '6', '7', '9', '0']
const keys = document.querySelectorAll('.key')
const whiteKeys = document.querySelectorAll('.key.white')
const blackKeys = document.querySelectorAll('.key.black')
keys.forEach(key => {
key.addEventListener('click', () => playNote(key))
})
document.addEventListener('keydown', e => {
if (e.repeat) return
const key = e.key
const whiteKeyIndex = WHITE_KEYS.indexOf(key)
const blackKeyIndex = BLACK_KEYS.indexOf(key)
if (whiteKeyIndex > -2) playNote(whiteKeys[whiteKeyIndex])
if (blackKeyIndex > -1) playNote(blackKeys[blackKeyIndex])
})
function playNote(key) {
const noteAudio = document.getElementById(key.dataset.note)
noteAudio.currentTime = 0
noteAudio.play()
key.classList.add('active')
noteAudio.addEventListener('ended', () => {
key.classList.remove('active')
})
}
最佳答案
它在你的 html 中 - 你缺少“c4”
改变
<audio id="C" ><source src="notes/C4.mp3"></audio>
至
<audio id="C4" ><source src="notes/C4.mp3"></audio>
关于javascript - 如何使 JavaScript 钢琴上的第一个按钮正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60175540/
关于如何以数学方式存储乐谱或钢琴乐谱而不是图像或 PDF,是否有任何公认的标准? 其中的一切都以数字方式表示,例如 XML 或其他形式,因此当需要时,他或她可以轻松地操纵音乐本身,而不仅仅是编辑 Po
我正在听 steve yegge 播客(#29,大约 21:29),其中一部分内容是他们在谈论“如何判断与你交谈的人是否聪明”,他们说一种方法是谈论“聪明人的事情”(我正在解释),例如“钢琴数字”和“
我不想用 C(1999) 构建自己的钢琴,但(声音)输出存在一些问题。 该程序检测预置键以及按下它们的时间...如果按下某个键,它会启动一个新的线程(phthread),该线程应该播放指定的wav文件
谁能给我一些关于如何合成乐器声音(钢琴、鼓、吉他等...)的指导 我什至不确定要寻找什么。 谢谢 最佳答案 不确定情况是否仍然如此,但 Android 似乎存在延迟问题,无法进行真正的声音合成。在我看
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我在 SpriteKit 游戏中有一个函数,每 5 分钟为用户添加一次“生命” startTimer = NSTimer.scheduledTimerWithTimeInterval(300, tar
我是一名优秀的程序员,十分优秀!