JavaScript: как проверить, нажаты ли две клавиши одновременно

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

  1. Использование событий keydownи keyup:

    let keys = {};
    document.addEventListener('keydown', (event) => {
     keys[event.key] = true;
     if (keys['KeyA'] && keys['KeyB']) {
       // Both keys A and B are pressed simultaneously
       console.log('Both keys A and B are pressed.');
     }
    });
    document.addEventListener('keyup', (event) => {
     delete keys[event.key];
    });

    Этот метод использует события keydownи keyupдля отслеживания состояния клавиш. При нажатии клавиши соответствующее значение в объекте keysустанавливается в true. Если одновременно нажать обе клавиши A и B, вы сможете выполнить желаемое действие.

  2. Использование события keypress:

    let keyA = false;
    let keyB = false;
    document.addEventListener('keydown', (event) => {
     if (event.key === 'KeyA') {
       keyA = true;
     }
     if (event.key === 'KeyB') {
       keyB = true;
     }
     if (keyA && keyB) {
       // Both keys A and B are pressed simultaneously
       console.log('Both keys A and B are pressed.');
     }
    });
    document.addEventListener('keyup', (event) => {
     if (event.key === 'KeyA') {
       keyA = false;
     }
     if (event.key === 'KeyB') {
       keyB = false;
     }
    });

    Этот метод использует отдельные переменные для отслеживания состояния каждой клавиши (A и B) и проверяет, нажаты ли обе клавиши одновременно.

  3. Использование прослушивателя событий для события keydown:

    let keysPressed = new Set();
    document.addEventListener('keydown', (event) => {
     keysPressed.add(event.key);
     if (keysPressed.has('KeyA') && keysPressed.has('KeyB')) {
       // Both keys A and B are pressed simultaneously
       console.log('Both keys A and B are pressed.');
     }
    });
    document.addEventListener('keyup', (event) => {
     keysPressed.delete(event.key);
    });

    Этот метод использует объект Setдля отслеживания нажатых клавиш. Если обе клавиши A и B находятся в наборе keysPressed, вы можете выполнить желаемое действие.