カテゴリ: JavaScript 更新日: 2026/02/02

JavaScriptのキーボードイベントの基本(keydown, keyupなど)

JavaScriptのキーボードイベントの基本(keydown, keyupなど)
JavaScriptのキーボードイベントの基本(keydown, keyupなど)

先生と生徒の会話形式で理解しよう

生徒

「先生、キーボードのキーを押したときに反応する処理を作りたいです。」

先生

「それなら、JavaScriptのキーボードイベントを使います。主にkeydownkeyupkeypressがあります。」

生徒

「それぞれ違いはあるんですか?」

先生

「はい、keydownはキーを押した瞬間、keyupはキーを離した瞬間、keypressは文字キーを押したときに発生します。ただしkeypressは非推奨なので、keydownkeyupを使うことが一般的です。」

1. keydownイベントとは?

1. keydownイベントとは?
1. keydownイベントとは?

keydownイベントは、キーボードのキーを押した瞬間に発生します。押している間は何度も発生する場合があります。

例えば、ゲームのキャラクターを動かすときに、矢印キーを押した瞬間に動かす処理を作ることができます。


document.addEventListener("keydown", function(event) {
  console.log("押されたキー:", event.key);
});

この例では、押されたキーの文字がevent.keyで取得できます。

2. keyupイベントとは?

2. keyupイベントとは?
2. keyupイベントとは?

keyupイベントは、キーを離した瞬間に発生します。キーを押している間ではなく、離したタイミングで処理を実行したい場合に使います。


document.addEventListener("keyup", function(event) {
  console.log("離したキー:", event.key);
});

例えば、入力フォームでEnterキーを離した瞬間に送信処理を行う、といった使い方ができます。

3. キーボードイベントで使えるプロパティ

3. キーボードイベントで使えるプロパティ
3. キーボードイベントで使えるプロパティ

キーボードイベントには便利なプロパティがあります。代表的なものは次の通りです:

  • event.key:押されたキーの文字や名前(例: "a", "Enter")
  • event.code:物理的なキーのコード(例: "KeyA", "Enter")
  • event.ctrlKey:Ctrlキーが押されているかどうか
  • event.shiftKey:Shiftキーが押されているかどうか
  • event.altKey:Altキーが押されているかどうか

document.addEventListener("keydown", function(event) {
  if (event.key === "Enter") {
    console.log("Enterキーが押されました");
  }
  if (event.ctrlKey && event.key === "s") {
    console.log("Ctrl+S が押されました");
  }
});

この例では、Enterキーが押されたときや、Ctrl+Sのような組み合わせキーが押されたときに処理を実行しています。

4. 実用例:ゲームや入力フォームでの活用

4. 実用例:ゲームや入力フォームでの活用
4. 実用例:ゲームや入力フォームでの活用

キーボードイベントは、ゲームでのキャラクター操作、テキスト入力の補助、ショートカットキーの実装などに使われます。

例えば、矢印キーでキャラクターを動かす場合はkeydownで動かす処理、キーを離したときに停止させる処理はkeyupで書く、といった使い方です。


const player = { x: 0, y: 0 };

document.addEventListener("keydown", function(event) {
  switch(event.key) {
    case "ArrowUp": player.y -= 1; break;
    case "ArrowDown": player.y += 1; break;
    case "ArrowLeft": player.x -= 1; break;
    case "ArrowRight": player.x += 1; break;
  }
  console.log("プレイヤー位置:", player);
});

これで矢印キーを押すと、プレイヤーの位置が更新されコンソールに表示されます。

5. 注意点とコツ

5. 注意点とコツ
5. 注意点とコツ

キーボードイベントを使うときは、以下の点に注意してください:

  • keypressは非推奨なので使用しない
  • キーの組み合わせはctrlKeyshiftKeyなどで判定する
  • 入力フィールドでのイベントは、フォーム全体に影響を与えないようにする
  • 反復入力や連打への対応を考える

これらを意識すると、快適で安全なキーボード操作を実装できます。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう