KeyboardEvent Value (keyCodes, metaKey тощо) - CSS-хитрощі

Anonim

Під час KeyboardEventпожежі ви можете перевірити, яку клавішу було натиснуто, оскільки ця подія містить інформацію, проти якої можна написати логіку.

document.addEventListener("keydown", function(event) ( console.log(event.which); ))

Наприклад, натиснувши "a", ви отримаєте 65. Очевидно, найкраще писати логіку, проти якої, оскільки keyCode і charCode складні:

Властивість event.which нормалізує event.keyCode та event.charCode. Рекомендується спостерігати за подією. Яка для введення клавіші на клавіатурі.

І:

Під час натискання клавіші значення Unicode натиснутої клавіші зберігається або у властивості keyCode, або у charCode, ніколи не в обох. Якщо натиснута клавіша генерує символ (наприклад, "a"), charCode встановлюється в код цього символу, з урахуванням регістру літер. (тобто charCode враховує, чи утримується клавіша Shift). В іншому випадку код натиснутої клавіші зберігається в keyCode.

Інструмент тестера

Перегляньте тестер Pen event.keyCode від Chris Coyier (@chriscoyier) на CodePen.

Значення коду ключа

Ось таблиця, що містить значення з event.which.

Ключ Код
зворотний простір 8
вкладку 9
введіть 13
зміна 16
ctrl 17
висота 18
перерва 19
кепки замок 20
Втеча 27
(пробіл) 32
сторінки вгору 33
сторінка вниз 34
кінець 35
додому 36
стрілка вліво 37
стрілка вгору 38
стрілка вправо 39
стрілка вниз 40
вставити 45
видалити 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a 65
b 66
c 67
d 68
Ключ Код
e 69
f 70
g 71
h 72
i 73
j 74
k 75
л 76
м 77
n 78
o 79
стор 80
q 81
р 82
s 83
т 84
u 85
v 86
w 87
х 88
р 89
z 90
ліва клавіша вікна 91
клавіша правого вікна 92
клавіша вибору 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103
Ключ Код
numpad 8 104
numpad 9 105
примножувати 106
додати 107
відняти 109
десяткова точка 110
розділити 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
Num Lock 144
Scroll Lock 145
товста кишка 186
знак рівності 187
кома 188
тире 189
період 190
коса риса 191
могильний акцент 192
відкрита дужка 219
зворотна коса риса 220
закрити дужку 221
одинарна цитата 222

Zell Liew помітив, що 3 з цих кодів клавіш відрізняються у Firefox від решти браузерів

  • ; становить 59 у Firefox, але 186 в інших браузерах.
  • = це 61 у Firefox, але 187 в інших браузерах.
  • - у Firefox становить 173, а в інших браузерах - 189.

Важливе зауваження: Ці значення Keycode дійсні тільки під час в keydownі keyupподій. На Mac keypressподії дають вам зовсім інший набір кодів.

Наприклад:

Ключ event.which в клавіатурі event.which при натисканні клавіші
a 65 97
b 66 98
c 67 99