提问人:kolbykiernan 提问时间:10/22/2023 最后编辑:kolbykiernan 更新时间:10/27/2023 访问量:60
使用 2 个键码返回事件
Use 2 keycodes to return event
问:
我已经学习 JS 3 周了,并且正在做一个构建可弹钢琴的项目。输入字母 c 时,它会播放音符 c。这部分工作正常,但现在我希望用户按住控制键并键入 c 以使其播放不同的音符 c#。我将如何设置?以下是我尝试过的工作,但我无法让它工作。
任何重构建议也很有帮助 - 我将玩更多的键
document.addEventListener('keydown', (playNote) =>{
if(playNote.key == 'c'){
document.getElementById('low-c').play();
}
if(playNote.key == 'c' && playNote.cntrlkey == true){
document.getElementById('low-c#').play();
}
}
答:
0赞
aabdulahad
10/22/2023
#1
查看此页面以了解键盘事件。
您将在“然后执行”下
找到一个值,如果按下 ctrl 键playNote.ctrlKey
if(playNote.key == 'c' && playNote.ctrlKey)
1赞
Mister Jojo
10/22/2023
#2
只是:
document.addEventListener('keydown', evt =>
{
if (evt.key == 'c')
{
if (evt.ctrlKey)
document.getElementById('low-c#').play();
else
document.getElementById('low-c').play();
}
});
评论
0赞
Wyck
10/27/2023
这个纯代码答案可以通过包含简短的解释来改进。
0赞
Mister Jojo
10/27/2023
@Wyck 对我来说,这只是编程初学者的问题,根据经验,我知道这里的这些帖子放在这个网站上并不重要,并且由于空间原因必须清除。
1赞
Ali Nauman
10/22/2023
#3
你很接近。正如另一个答案所提到的,您要读取的属性是 ,而不是 。另一个问题是逻辑问题 - 您需要在检查 c 按下之前检查 ctrl 键按下,并且还需要使用 if else。否则,按 ctrl+c 时将同时播放 c 和 c#。ctrlKey
cntrlkey
document.addEventListener("keydown", (event) => {
if (event.key === "c" && event.ctrlKey == true) {
document.getElementById("low-c#").play();
} else if (event.key === "c") {
document.getElementById("low-c").play();
}
});
评论
2赞
Mark Schultheiss
10/22/2023
真的不需要这个零件== true
0赞
XMehdi01
10/22/2023
#4
当您按下该键时,此代码会播放不同的钢琴音符,以及它是否与该键结合。如果按 ,它会播放 low-c#
;如果只按 ,它会播放低 C
。c
Ctrl
Ctrl + c
c
document.addEventListener('keydown', (playNote) => {
if (playNote.key === 'c' && playNote.ctrlKey) {
document.getElementById('low-c#').play();
} else if (playNote.key === 'c') {
document.getElementById('low-c').play();
}
});
评论
low-c#
low-c-sharp
#
ctrlKey
cntrlkey