Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

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 доступна для всіх подій, пов'язаних з мишею. Це означає, що її можна використовувати не лише для кліків, а й для перетягування, подвійного кліку або навіть під час руху миші. Завдяки цьому ви можете створювати інтуїтивні інтерфейси, які реагують на додаткові натискання клавіш для покращення користувацького досвіду.

Порада:

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

Порада:

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

Порада:

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

Синтаксис

event.shiftKey

Значення

Return

Переглядачі

Переглядач

1

1.5

1

12.1

12

Переглядач

37

18

4

1

Переглядач

-

-

Приклади


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

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

document.addEventListener('mousemove', function(event) {
    if (event.shiftKey) {
        document.body.style.backgroundColor = 'lightblue';
    } else {
        document.body.style.backgroundColor = 'white';
    }
});

У цьому прикладі реалізовано режим "виділення елементів" за допомогою клавіші "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('Виділення елементів...');
    }
});