キーボードイベント
キーボードイベントの種類
キーボード イベントは、ユーザーがキーボードを押すことによってトリガーされます。keydown、keypress、keyup という 3 つの主なイベントがあり、これらはすべて KeyboardEvent インターフェイスを継承します。
keydown: キーボードが押されたときにトリガーされます。keypress: 値のあるキーが押されたときにトリガーされます。つまり、Ctrl、Alt、Shift、Meta などの値のないキーが押された場合、このイベントはトリガーされません。値を持つキーの場合、押されると最初に「keydown」イベントがトリガーされ、次にこのイベントがトリガーされます。keyup: このイベントは、キーボードが放されたときにトリガーされます。
ユーザーがキーを押し続けて放さない場合、キーボード イベントは継続的にトリガーされます。トリガー シーケンスは次のとおりです。
1.キーダウン 1.キーを押す 1.キーダウン 1.キーを押す
- ...(上記のプロセスを繰り返します) 1.キーアップ
KeyboardEvent インターフェースの概要
KeyboardEvent インターフェイスは、キーボードとユーザーの対話を記述するために使用されます。このインターフェイスは「Event」インターフェイスを継承し、独自のインスタンス プロパティとインスタンス メソッドを定義します。
ブラウザーは、キーボード イベントの新しいインスタンスを作成するために使用される KeyboardEvent コンストラクターをネイティブに提供します。
new KeyboardEvent(タイプ、オプション)
KeyboardEvent コンストラクターは 2 つのパラメーターを受け入れます。最初のパラメータはイベント タイプを示す文字列で、2 番目のパラメータはオプションのイベント構成オブジェクトです。 「Event」インターフェースによって提供されるプロパティに加えて、次のフィールドを設定することもできます。これらはすべてオプションです。
key: 文字列、現在押されているキー。デフォルトは空の文字列です。code: 現在押されているキーの文字列形式を表す文字列。デフォルトは空の文字列です。location: 整数、現在押されているキーの位置。デフォルトは0です。ctrlKey: ブール値、Ctrl キーを押すかどうか、デフォルトはfalseです。shiftKey: ブール値、Shift キーを押すかどうか。デフォルトはfalseです。altKey: ブール値、Alt キーを押すかどうか。デフォルトはfalseです。metaKey: ブール値、Meta キーを押すかどうか、デフォルトはfalseです。repeat: ブール値、キーの押下を繰り返すかどうか。デフォルトはfalseです。
KeyboardEvent のインスタンス プロパティ
KeyboardEvent.altKey、KeyboardEvent.ctrlKey、KeyboardEvent.metaKey、KeyboardEvent.shiftKey
次のプロパティはすべて読み取り専用のプロパティであり、対応するキーが押されたかどうかを示すブール値を返します。
KeyboardEvent.altKey: Altキーが押されたかどうかKeyboardEvent.ctrlKey: Ctrlキーが押されたかどうかKeyboardEvent.metaKey: メタ キーを押すかどうか (Mac システムは 4 枚の花弁、Windows システムは Windows キー)KeyboardEvent.shiftKey: Shift キーが押されたかどうか
ここに例を示します。
関数 showChar(e) {
console.log('ALT: ' + e.altKey);
console.log('CTRL: ' + e.ctrlKey);
console.log('メタ: ' + e.metaKey);
console.log('Shift: ' + e.shiftKey);
}
document.body.addEventListener('keydown', showChar, false);
KeyboardEvent.code
KeyboardEvent.code プロパティは、現在押されているキーの文字列表現を表す文字列を返します。このプロパティは読み取り専用です。
以下は、一般的に使用されるいくつかのキーの文字列形式です。他のキーについては、ドキュメント を確認してください。
- 数字キー 0 ~ 9:
数字 0~数字 9を返します - 文字キー A ~ z:
KeyA~KeyZを返します。 - ファンクションキー F1 - F12:
F1-F12を返します。 - 矢印キー:
ArrowDown、ArrowUp、ArrowLeft、ArrowRightに戻ります。 - Alt キー:
AltLeftまたはAltRightを返します。 - Shift キー:
ShiftLeftまたはShiftRightを返します。 - Ctrl キー:
ControlLeftまたはControlRightに戻ります。
KeyboardEvent.key
KeyboardEvent.key プロパティは、押されたキーの名前を表す文字列を返します。このプロパティは読み取り専用です。
押されたキーが印刷可能な文字を表す場合、数字や文字などのこの文字が返されます。
押されたキーが印刷不可能な特殊文字を表す場合は、Backspace、Tab、Enter、Shift、Control、Alt、CapsLock、Esc、Spacebar、PageUp、PageDown、End、Home、Left、Right などの事前定義されたキー値が返されます。 、Up、Down、PrintScreen、Insert、Del、Win、F1~F12、NumLock、Scroll など
コントロールキーと記号キーが同時に押された場合は、記号キーのキー名を返します。たとえば、Ctrl + a を押すと「a」が返され、Shift + a を押すと大文字の「A」が返されます。
キー名が認識できない場合は、文字列「Unidentified」が返されます。
KeyboardEvent.location
「KeyboardEvent.location」プロパティは、押されたキーがキーボードのどの領域にあるかを示す整数を返します。次の値を取ることができます。
- 0: キーボードのメイン領域にあるか、どの領域にあるかを判断できません。
- 1: キーボードの左側では、2 つの位置を持つキー (Ctrl キーや Shift キーなど) にのみ適用されます。
- 2: キーボードの右側では、2 つの位置を持つキー (Ctrl キーや Shift キーなど) にのみ適用されます。
- 3: テンキー上。
KeyboardEvent.repeat
KeyboardEvent.repeat は、キーを繰り返すかどうかを決定するために、キーが押し続けられているかどうかを表すブール値を返します。つまり、ブラウザーは、ユーザーがキーを押すまで、keydown および keypress イベントをトリガーし続けます。手を離す。
KeyboardEvent のインスタンス メソッド
KeyboardEvent.getModifierState()
KeyboardEvent.getModifierState() メソッドは、指定されたファンクション キーが押されたかアクティブになったかを示すブール値を返します。共通パラメータは以下の通りです。
Alt: Alt キーCapsLock: Caps ロック キーControl: Ctrl キーMeta: メタキーNumLock: テンキー切り替えキーShift: シフトキー
もし (
イベント.getModifierState('コントロール') +
イベント.getModifierState('Alt') +
イベント.getModifierState('メタ') > 1
) {
戻る;
}
上記のコードは、Control、Alt、および Meta のいずれかの 2 つ以上のキーが同時に押されている限り、戻ることを示しています。
作者: wangdoc
アドレス: https://wangdoc.com/
ライセンス: クリエイティブ・コモンズ 3.0