JS властивість Event.keydown
Загальний опис
Подія keydown спрацьовує в момент натискання будь-якої клавіші на клавіатурі. Вона є однією з основних подій для обробки введення з клавіатури і часто використовується для створення інтерактивних інтерфейсів, де дії користувача можуть бути пов'язані з певними клавішами. Подія keydown спрацьовує до того, як символ з'являється у полі введення, на відміну від події keypress, яка запускається лише для символів, які можуть бути відображені. Важливою особливістю цієї події є можливість обробляти клавіші, що не генерують символи, такі як Ctrl, Shift, Alt, Arrow та інші.
Подія надає об'єкт event, який містить інформацію про натиснуту клавішу. Основні властивості, які можуть бути корисними:
event.key– повертає символ або назву клавіші (наприклад,"a","ArrowUp").event.code– повертає фізичний код клавіші, наприклад,"KeyA".event.ctrlKey,event.shiftKey,event.altKey– булеві значення, які показують, чи натиснуті відповідні клавіші-модифікатори.
Приклад використання події keydown для виведення натиснутої клавіші в консоль:
document.addEventListener('keydown', function(event) {
console.log('Натиснута клавіша: ' + event.key);
});
Також можна використовувати подію keydown, щоб заборонити введення певних символів:
document.addEventListener('keydown', function(event) {
if (event.key === 'Tab') {
event.preventDefault(); // Забороняє дію клавіші Tab
}
});
Використовуючи подію keydown, можна легко створювати гарячі клавіші для керування елементами на сторінці або створювати інтерактивні ігри, де реакція на клавіатуру важлива. Важливо зазначити, що ця подія спрацьовує при кожному повторному натисканні клавіші, якщо її утримувати.
- Порада
-
При обробці цифрових клавіш звертайте увагу на відмінності між основними клавішами та цифровим блоком. Використовуйте
автор: Bondevent.codeдля відрізнення, наприклад, міжDigit1таNumpad1. - Порада
-
Будьте уважні з фізичними кодами клавіш (
автор: Bondevent.code), оскільки вони залежать від розкладки клавіатури. Наприклад, код клавішіKeyAне змінюється при перемиканні розкладки, тоді як значенняevent.keyзміниться. - Порада
-
Подія
автор: Bondkeydownчасто використовується в ігрових сценаріях для керування персонажами. Але важливо правильно обробляти довгі натискання клавіш, щоб уникнути багаторазових викликів події при утриманні клавіші.
Синтаксис
element.addEventListener('keydown', function(event) {
// Ваш код тут
});
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 66 | 57 | 11.1 | 53 | 16 |
| Переглядач | ||||
|---|---|---|---|---|
| 66 | 66 | 57 | 11.3 |
| Переглядач | ||
|---|---|---|
| 15.0.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Цей приклад демонструє, як заборонити стандартну дію браузера для комбінації клавіш Ctrl + S, яка зазвичай викликає діалог збереження сторінки. Ви можете виконати власну дію, наприклад, збереження контенту в локальному сховищі.
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.key === 's') {
event.preventDefault();
console.log('Користувач натиснув Ctrl + S, але сторінка не буде збережена.');
}
});
У цьому прикладі за допомогою події keydown користувач може керувати рухом зеленого квадрата по екрану, натискаючи клавіші-стрілки. Кожне натискання переміщує квадрат на 10 пікселів у відповідному напрямку (вгору, вниз, ліворуч або праворуч), при цьому рух обмежений межами контейнера.
У цьому прикладі подія keydown використовується для керування положенням персонажа за допомогою клавіш-стрілок. При натисканні клавіші "ArrowRight" персонаж рухається вправо, а при натисканні "ArrowLeft" — вліво. Це базовий приклад для розуміння, як створювати ігрові механіки з використанням клавіатури.
let positionX = 0;
document.addEventListener('keydown', function(event) {
if (event.key === 'ArrowRight') {
positionX += 10;
} else if (event.key === 'ArrowLeft') {
positionX -= 10;
}
console.log('Позиція персонажа: ' + positionX);
});
Коментарі
Коментарів ще немає — будьте першим!