JS метод Event.getModifierState (MouseEvent)()


Загальний опис

getModifierState – це метод об’єкта MouseEvent, що використовується для перевірки, чи була натиснута певна модифікаторна клавіша, коли відбулася подія миші. Модифікаторні клавіші – це клавіші Shift, Control, Alt і Meta (на деяких платформах це Command на MacOS). Вказавши одну з цих клавіш як аргумент, getModifierState повертає true, якщо вказана клавіша активна під час події, і false в іншому випадку.

Метод використовується для того, щоб визначити контекстні дії, які залежать від натискання певних клавіш, наприклад, розширений вибір елементів або зміна функціональності при натисканні миші. Наприклад, якщо потрібно відрізнити звичайний клік від кліку з натиснутою клавішею Ctrl, метод getModifierState допоможе визначити, чи була ця клавіша натиснута.

document.addEventListener('click', function(event) {
   if (event.getModifierState('Shift')) {
       console.log('Shift була натиснута під час кліку.');
   }
});

У прикладі вище, під час кожного кліку мишею буде перевірятися, чи була натиснута клавіша Shift. Якщо так, в консоль виводиться повідомлення. Доступні ключові значення, які приймає метод: Shift, Control, Alt, Meta, а також менш відомі, як CapsLock і NumLock. Можна передати й інші значення, проте для неіснуючих клавіш метод завжди поверне false.

Цей метод працює в поєднанні з подіями миші, що мають ключову інформацію про модифікаторні клавіші. Наприклад, mousedown, mouseup і click також підтримують виклики getModifierState, що дозволяє створювати розширені умови для реакції на події миші. Метод є особливо корисним для кастомізації інтерфейсів користувача і розробки додаткових функцій, що базуються на поведінці користувача.

автор: Bond

Порада

Використовуйте цей метод разом з подіями keydown та keyup, щоб відстежувати послідовність натискань. Це дає змогу побудувати кастомні комбінації клавіш, які виконують специфічні дії при натисканні.

автор: Bond
Порада

Модифікаторні клавіші можуть не працювати так само у всіх браузерах, особливо Meta, яка може вказувати на клавішу "Command" на Mac, але бути неактивною на Windows. Пам’ятайте про ці відмінності при написанні крос-браузерного коду.

автор: Bond
Порада

Якщо ви працюєте з комбінаціями клавіш, спершу перевірте кілька модифікаторних клавіш одночасно. Наприклад, щоб дізнатись, чи були натиснуті Ctrl та Shift разом, викличте метод для обох і порівняйте результати.

автор: Bond

Синтаксис

event.getModifierState(key)

Повернення

boolean

Повертає булеве значення (true або false), яке вказує на те, чи була конкретна клавіша-модифікатор (наприклад, Shift, Control, Alt або Meta) активною під час події. Якщо зазначена клавіша була натиснута в момент виникнення події, результат буде true; якщо ні – false.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1.5 1 12.1 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми відстежуємо рух курсора з натиснутою клавішею Control. Це корисно, коли потрібно дати користувачу можливість утримувати Ctrl для альтернативної поведінки під час переміщення миші.

document.addEventListener('mousemove', function(event) {
   if (event.getModifierState('Control')) {
       console.log('Курсор переміщується з натиснутою Ctrl');
   }
});
автор: Bond

Тут обробляється клік миші, якщо користувач одночасно натискає Shift і Alt. Це дозволяє створити складніші взаємодії з UI, наприклад, для виклику додаткових функцій або налаштувань лише при певній комбінації клавіш і миші.

document.addEventListener('click', function(event) {
   if (event.getModifierState('Shift') && event.getModifierState('Alt')) {
       console.log('Клік з комбінацією Shift+Alt');
   }
});
автор: Bond

Цей код створює інтерактивну кнопку, яка змінює результат виведення на основі натиснутої модифікаторної клавіші (Shift, Ctrl або Alt). Користувач може натискати кнопку з різними клавішами-модифікаторами, і текст у блоці результату змінюється залежно від того, яка клавіша була натиснута. Це зручно для демонстрації змін поведінки на одній кнопці, що може бути корисно при розробці додатків з багатофункціональними кнопками.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід