gpt4 book ai didi

javascript - 如何使 JavaScript 钢琴上的第一个按钮正常工作?

转载 作者:行者123 更新时间:2023-12-02 21:49:05 25 4
gpt4 key购买 nike

我已经根据 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')
})
}

download code

jsfiddle link

最佳答案

它在你的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com