Я реализовал следующее:
var map = {};
document.onkeydown = document.onkeyup = function(e){
e = e || event;
map[e.keyCode] = e.type == 'keydown';
if(map[38] && map[37]){ // UP + LEFT
console.log('Up Left');
}
else if(map[38] && map[39]){ // UP + RIGHT
console.log('Up Right');
}
else if(map[38]){ // UP
console.log('Up');
}
else if(map[40]){ // DOWN
console.log('Down');
}
else if(map[37]){ // LEFT
console.log('Left');
}
else if(map[39]){ // RIGHT
console.log('Right');
}
}
Если я сейчас нажму кнопку «вверх» на моей клавиатуре, моя консоль будет несколько раз входить в систему.Пока я удерживаю кнопку «вверх» и начинаю также нажимать левую кнопку, моя консоль начинает многократно регистрировать «вверх влево».
Теперь я отпускаю левую кнопку, и моя консоль регистрирует только один раз «вверх», но больше не регистрирует ее повторно.
Как мне этого добиться?
Я попытался найти ответ здесь, на StackOverflow.Но я только нашел решение, что он только один раз "включается" после того, как я отпущу левую кнопку.
Может кто-нибудь помочь или хотя бы дать подсказку, пожалуйста?