キーボード
キーボードイベント
イベント名 | 発生する条件 |
---|---|
keydown | 要素上でキーが押された |
keyup | 要素上でキーが離された |
document.addEventListener("keydown", (event: KeyboardEvent) => {
// 画面で任意のキーが押されたときに呼ばれる
});
キーボードイベントを受け取りたい要素に addEventListener
で、イベント名とコールバックで呼ばれる関数を登録する。
<div tabindex="0"></div>
div のようなフォーカスが当たらない要素に対してキーイベントを設定する場合は tabindex
の値を指定しておく。
on ~
document.onkeydown = () => {
// 画面のどこかで任意のキーが押されたときに呼ばれる
};
const container = document.getElementById("container");
container.onkeyup = () => {
// idがcontainerの要素上で任意のキーされたときに呼ばれる
};
要素には onkeydown
や onkeyup
のような、 on{イベント名}
というイベントハンドラがあり、これを利用すると addEventListener
を使わず簡潔に記述することができる。
ただしイベントハンドラに指定できる関数は一つだけになる。
<body onkeydown="console.log('test');"></body>
<div onkeydown="console.log('test');" tabindex="0"></div>
on
~系のイベントハンドラは要素の属性でもあるので、HTML から直接記述することができる。
どのキーが押されたか
document.onkeydown = (event: KeyboardEvent) => {
console.log(event.key, event.code);
};
a KeyA
b KeyB
c KeyC
A KeyA
B KeyB
C KeyC
code
は物理的なキー、つまり実際に存在するキーボードで押されたキーそのものに付けられている識別子を返す。例えば A キーなら KeyA
、4 キーなら Digit4
を返す。
key
はキーボードのキーに対応している文字を返す。このプロパティは大文字/小文字を区別して返す。