JavaScript: Информация О Нажатой Клавише 👇🏽

В данной статье рассмотрим, как получить информацию о нажатой клавише клавиатуры или кнопки мыши, а также как выполнять необходимые действия (нужный код) при нажатии определенных сочетаний клавиш или кнопок (правый/левый клик мыши).
Demo Only to top

Чтобы получить информацию, о том какая кнопка клавиатуры нажимается в данный момент, воспользуемся следующим кодом:

function keyPress(e) {
    let keyNum;
    if (window.event) {
        keyNum = window.event.keyCode;
    }
    else if (e) {
        keyNum = e.which;
    }
    console.log(keyNum);
}
document.onkeydown = keyPress;

Номер кнопки находится в переменной keyNum

Узнать keyCode кнопки можете здесь:

Выполнение кода в зависимости от нажатой клавиши

Давайте теперь будем выполнять необходимые действия в зависимости от нажатой клавиши

Для этой задачи воспользуемся оператором switch

В конструкции case укажите номер кнопки, для которой будет выполнен необходимый код.

document.onkeydown = function(e){
    switch (e.keyCode) {
        case 49:
            console.log('Нажата единица');
            break;
        case 50:
            console.log('Нажата двойка');
            break;
        case 32:
            console.log('Нажат пробел');
            break;
        case 9:
            console.log('Нажат tab');
            break;
        case 16:
            console.log('Нажат shift');
            break;
        default:
            console.log(e.keyCode);
    }
};

Вместо console.log выполняйте необходимые действия.

Если была нажата клавиша, которой нет в списке, то для неё можете выполнить другой код. Писать в default

Как отследить комбинации нажатых клавиш

Демонстрация Only to top

Отследить нажатие CTRL, SHIFT и ALT можно также другими способами (данный способ необходим чтобы отследить комбинации)

  • ctrlKey - CTRL
  • altKey - ALT
  • shiftKey - SHIFT

Например, отследить нажатие CTRL можно следующим образом:

document.addEventListener('keydown', function(e){
    if ( e.ctrlKey ) {
        console.log('Был нажат CTRL');
        document.getElementById('btnClick').textContent = 'CTRL';
    }
});

Используя всю ранее полученную информацию, определим нажатую комбинацию клавиш, например, CTRL + F5

document.addEventListener('keydown', function(e){
    e.preventDefault();

    if ( e.ctrlKey && event.key == 'F5' ) {
        console.log('Была нажата комбинация клавиш CTRL + F5');
    }
});

Как вы могли заметить, обращаться к клавишам в JavaScript можно несколькими способами. Например, следующие строки кода позволяют нам получить один и тот же результат:

event.key == 'F5' аналогично e.keyCode == 116

Мы рассмотрели, как получить информацию о нажатой клавише на клавиатуре. Теперь давайте рассмотрим, как обработать события мыши.

Информация о нажатой кнопке мыши JavaScript

Рассмотрим, как определить какая кнопка мыши нажимается над объектом: левая нопка, правая или дабл клик

Демка Only to top

Выполнение кода при клике левой кнопкой мыши

document.querySelector(selector).onclick = function(e) {
    if (e.which == 1) {
        console.log('Нажата левая кнопка мыши');
    }
}

Выполнение кода при клике правой кнопкой мыши

document.querySelector(selector).oncontextmenu = function(e) {
    e.preventDefault();
    console.log('Нажата правая кнопка мыши');
}

Выполнение кода при двойном клике по кнопке

document.querySelector(selector).ondblclick = function() {
    console.log('Двойное нажатие левой кнопки мыши');
}
admin
09/11/2019 10:28