You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
765 B
39 lines
765 B
const buttons = document.querySelectorAll('[tabindex="0"]');
|
|
let selected = 0;
|
|
let absoluteMode = false;
|
|
|
|
document.body.addEventListener("keydown", event => {
|
|
if(absoluteMode) {
|
|
if(event.key == "*") {
|
|
absoluteMode = !absoluteMode;
|
|
} else {
|
|
let key = parseInt(event.key);
|
|
if(key >= 0 && key <= 9) {
|
|
buttons[(key + 10) % 11].click();
|
|
}
|
|
}
|
|
} else {
|
|
switch(event.key) {
|
|
case "6":
|
|
case "k":
|
|
case "K":
|
|
if(selected > 0)
|
|
selected--;
|
|
buttons[selected].focus();
|
|
break;
|
|
case "9":
|
|
case "j":
|
|
case "J":
|
|
if(selected < buttons.length)
|
|
selected++;
|
|
buttons[selected].focus();
|
|
break;
|
|
case "8":
|
|
buttons[selected].click();
|
|
break;
|
|
case "*":
|
|
absoluteMode = !absoluteMode;
|
|
break;
|
|
}
|
|
}
|
|
}); |