![]()
JavaScript keyup keydown keypress 違い を完全理解!イベント発生タイミングから実例まで徹底解説
JavaScriptでキーボードイベントを扱う際に keyup, keydown, keypress の違いに迷っていませんか?本記事では、それぞれのイベントの発生タイミングと特徴、実例を交えて分かりやすく解説します。keydown、keypress、keyupの違いを理解し、状況に応じた使い分けをマスターしましょう!
1. keydown, keypress, keyup イベントの概要
- キーボードイベントとは: ユーザーがキーボードのキーを押したり、離したりした際に発生するイベント。
 - 3つのイベントの種類と発生タイミング:
        
- **keydown:** キーが押された瞬間に発生
 - **keypress:** キーが押され、文字が入力される際に発生 (一部キーを除く)
 - **keyup:** キーが離された瞬間に発生
 
 
2. 各イベントの詳細と使い分け
2.1 keydown イベント
- 特徴: 
        
- ほぼ全てのキーで発生する。
 - 押している間、繰り返し発生する。
 - キーの組み合わせ(Ctrl+Cなど)を取得できる。
 
 - 使用例: 
        
- ゲーム操作:キャラクターの移動など、キーの押し続けに反応させたい場合。
 - ショートカットキーの実装: Ctrl+Sで保存など。
 
 
2.2 keypress イベント
- 特徴: 
        
- 文字入力可能なキー(アルファベット, 数字, 記号など)のみ発生する。
 - Shiftキーなどによる大文字小文字は区別されない。
 - keydown イベントの後、keyup イベントの前に発生する。
 
 - 使用例: 
        
- 入力フォームの制御: 入力可能な文字種の制限など。
 
 
2.3 keyup イベント
- 特徴: 
        
- 押されたキーが離されたときに発生する。
 - キーの組み合わせを取得できない。
 
 - 使用例: 
        
- 入力確定: エンターキーを押してフォームを送信するなど。
 - キーの押下状態の解除: keydownイベントで設定した状態を解除する。
 
 
3. イベントハンドラの記述方法
- `addEventListener()` を使用した記述例
 
<script>
  element.addEventListener('keydown', function(event) {
      // keydown イベント発生時の処理
  });
</script>
4. まとめ: keydown, keypress, keyup イベントを使いこなそう!
- それぞれのイベントの特徴を理解し、適切に使い分けることが重要。
 - keydown: キーの押下状態を検知したい場合や、キーの組み合わせを取得したい場合に最適。
 - keypress: 文字入力の制御や、入力された文字そのものを取得したい場合に最適。
 - keyup: キーの押下状態の解除や、キー入力の確定を検知したい場合に最適。
 
その他の参考記事:jquery keyup 発火