我如何检测当一个方向键被按下?我用这个找到了答案:
function checkKey(e) {
var event = window.event ? window.event : e;
console.log(event.keyCode)
}
虽然它适用于所有其他键,但它不适用于方向键(可能是因为浏览器默认情况下应该在这些键上滚动)。
我如何检测当一个方向键被按下?我用这个找到了答案:
function checkKey(e) {
var event = window.event ? window.event : e;
console.log(event.keyCode)
}
虽然它适用于所有其他键,但它不适用于方向键(可能是因为浏览器默认情况下应该在这些键上滚动)。
当前回答
我也一直在寻找这个答案,直到我看到这篇文章。
我已经找到了另一个解决方案,知道不同的钥匙的键码,礼貌的我的问题。我只是想分享我的解决方案。
只需使用keyup/keydown事件在控制台/警报中写入值,使用event. keycode相同。像- - - - - -
console.log(event.keyCode)
// or
alert(event.keyCode)
——rupam
其他回答
这是短的。
函数IsArrows (e) { return (e.keyCode >= 37 && e.keyCode <= 40); }
现代答案,因为keyCode现在已弃用,取而代之的是key:
document.onkeydown = function (e) {
switch (e.key) {
case 'ArrowUp':
// up arrow
break;
case 'ArrowDown':
// down arrow
break;
case 'ArrowLeft':
// left arrow
break;
case 'ArrowRight':
// right arrow
}
};
与键和ES6。
这为您提供了一个单独的功能,每个方向键,而不使用开关,也适用于2,4,6,8键在NumLock是在numpad。
const element = document.querySelector("textarea"), ArrowRight = k => { console.log(k); }, ArrowLeft = k => { console.log(k); }, ArrowUp = k => { console.log(k); }, ArrowDown = k => { console.log(k); }, handler = { ArrowRight, ArrowLeft, ArrowUp, ArrowDown }; element.addEventListener("keydown", e => { const k = e.key; if (handler.hasOwnProperty(k)) { handler[k](k); } }); <p>Click the textarea then try the arrows</p> <textarea></textarea>
对于不可打印的键,如方向键,使用向下键,而不是按下键:
function checkKey(e) {
e = e || window.event;
alert(e.keyCode);
}
document.onkeydown = checkKey;
我找到的最好的JavaScript键事件参考资料(例如,打败quirksmode)在这里:http://unixpapa.com/js/key.html
上下键调用函数。每个钥匙都有不同的密码。
document.onkeydown = checkKey;
function checkKey(e) {
e = e || window.event;
if (e.keyCode == '38') {
// up arrow
}
else if (e.keyCode == '40') {
// down arrow
}
else if (e.keyCode == '37') {
// left arrow
}
else if (e.keyCode == '39') {
// right arrow
}
}