JS властивість Event.shiftKey (Mouse)


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

Властивість shiftKey об'єкта MouseEvent повертає булеве значення (true або false), яке вказує, чи була натиснута клавіша "Shift" під час виконання події миші (наприклад, click, mousemove або mousedown). Це дозволяє створювати різноманітну поведінку для елементів на сторінці залежно від того, чи утримується "Shift". Наприклад, можна змінювати спосіб виділення елементів або надавати додаткові можливості при взаємодії з елементами на сторінці.

Робота з shiftKey досить проста: коли користувач викликає подію миші, ви можете перевірити, чи утримував він клавішу "Shift". Якщо так, то можна виконати альтернативну дію, яка відрізняється від звичайної взаємодії. Наприклад, користувач може виконати спеціальну команду, перетягуючи елемент з натиснутою клавішею "Shift", або змінити напрямок анімації.

Приклад використання:

document.addEventListener('click', function(event) {
    if (event.shiftKey) {
        console.log('Клавіша Shift була натиснута!');
    } else {
        console.log('Клавіша Shift не була натиснута.');
    }
});

У цьому прикладі при кожному кліку перевіряється, чи була натиснута клавіша "Shift", і виводиться відповідне повідомлення в консоль. Це дозволяє додавати гнучкішу логіку до дій користувача.

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

автор: Bond

Порада

Не варто перевіряти лише наявність події миші, краще одразу обробляти стан клавіші "Shift". Це дасть можливість уникнути зайвих дій і точніше контролювати події.

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

Для відстеження тривалих дій, таких як перетягування елементів, можна перевіряти shiftKey у подіях mousedown або mousemove. Це дозволить додати спеціальні функції, які будуть активовані, якщо "Shift" натиснутий під час переміщення миші.

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

Спробуйте застосовувати shiftKey у комбінації з різними подіями миші для створення багатого інтерфейсу. Наприклад, поєднуйте кліки, перетягування та подвійні кліки з утриманням "Shift" для різних сценаріїв.

автор: Bond

Синтаксис

event.shiftKey

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач 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
- -

Приклади

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

У цьому прикладі реалізовано режим "виділення елементів" за допомогою клавіші "Shift". Коли користувач натискає мишу з утриманою клавішею "Shift", режим виділення перемикається, і під час руху миші виводиться інформація про виділення елементів. Цей підхід може використовуватися для створення інструментів малювання або редагування.

let selectionMode = false;

document.addEventListener('mousedown', function(event) {
    if (event.shiftKey) {
        selectionMode = !selectionMode;
        console.log('Режим виділення:', selectionMode ? 'ввімкнено' : 'вимкнено');
    }
});

document.addEventListener('mousemove', function(event) {
    if (selectionMode) {
        console.log('Виділення елементів...');
    }
});
автор: Bond

У цьому прикладі користувач може натискати в межах області малювання (синій блок) і створювати червоні прямокутники тільки тоді, коли утримується клавіша "Shift". В іншому випадку подія кліку відбувається без жодної дії. Це демонструє, як можна використовувати shiftKey для активації спеціальних режимів дій у вашому інтерфейсі.

автор: Bond

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

document.addEventListener('mousemove', function(event) {
    if (event.shiftKey) {
        document.body.style.backgroundColor = 'lightblue';
    } else {
        document.body.style.backgroundColor = 'white';
    }
});
автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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