0Pricing
JavaScript Academy · レッスン

キーボードイベントとマウスイベント

クリック、キー入力、ポインターイベントを処理します。

「キーボードイベントとマウスイベント」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全4レッスンが含まれています。

入力イベントの種類

マウスイベントとキーボードイベントを使うと、豊かなインタラクションを構築できます。それぞれの種類には、専用のイベントタイプとプロパティがあります。

clickイベント

clickは、主ボタンを押して離したときに発生します。また、ボタンやリンクをキーボードで操作したときにも発生するため、アクセシビリティにも対応できます。

btn.addEventListener("click", () => {
  console.log("activated");
});

dblclickとcontextmenu

dblclickはダブルクリック時に発生し、contextmenuは右クリック時に発生します(カスタムメニューを表示するために、通常はキャンセルします)。

el.addEventListener("dblclick", () => console.log("double"));
el.addEventListener("contextmenu", (e) => e.preventDefault());

mousedown、mouseup、mousemove

これらを使うと、押す、離す、移動するといった操作を細かく制御できます。ドラッグ操作の基礎となるイベントです。

box.addEventListener("mousedown", () => console.log("down"));
box.addEventListener("mouseup", () => console.log("up"));

mouseenterとmouseoverの違い

mouseenterはバブリングせず、子要素との境界を無視します。一方、mouseoverはバブリングし、子孫要素へ移動したときにも発生します。ホバー処理には通常、mouseenterが適しています。

el.addEventListener("mouseenter", () => el.classList.add("hover"));
el.addEventListener("mouseleave", () => el.classList.remove("hover"));

マウスボタンの種類

buttonプロパティは、どのボタンによってイベントが発生したかを示します。0は左、1は中央、2は右です。

el.addEventListener("mousedown", (e) => {
  if (e.button === 2) console.log("right button");
});

keydownとkeyup

keydownはキーを押し下げたときに発生し、押し続けている間は繰り返し発生します。keyupはキーを離したときに発生します。keypressは非推奨です。

input.addEventListener("keydown", (e) => {
  console.log("down: " + e.key);
});

event.key

e.keyはキーの論理的な値です。"a"のような文字や、"Enter"、"Escape"、"ArrowUp"のような名前になります。

input.addEventListener("keydown", (e) => {
  if (e.key === "Escape") console.log("cancel");
});

event.code

e.codeは、キーボードレイアウトに依存しない物理的なキーの位置です("KeyA"や"Space"など)。ゲームの操作にはこれを使います。

window.addEventListener("keydown", (e) => {
  if (e.code === "Space") console.log("jump");
});

キーボードショートカット

修飾キーのフラグとkeyを組み合わせてショートカットを検出し、preventDefaultを呼び出してブラウザーのデフォルト動作を上書きします。

document.addEventListener("keydown", (e) => {
  if (e.ctrlKey && e.key === "s") {
    e.preventDefault();
    console.log("save");
  }
});

押し続けたキーのrepeat

e.repeatは、キーを押し続けているためにkeydownが発生しているときにtrueになります。これにより、自動リピートを無視できます。

window.addEventListener("keydown", (e) => {
  if (e.repeat) return;
  console.log("first press of " + e.key);
});

クイックチェック

キーボードレイアウトに依存しないプロパティを選んでください。

まとめ

マウスイベントには、click、dblclick、mousedown/mouseup/mousemove、そしてホバーに適したmouseenter/mouseleaveがあります。buttonはどのボタンかを識別します。キーボードイベントではkeydown/keyupを使い、文字や名前にはe.key、物理的なキーにはe.code、押し続けているキーにはe.repeatを使います。

よくある質問

「キーボードイベントとマウスイベント」レッスンは無料ですか?

はい。「キーボードイベントとマウスイベント」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全4レッスンが含まれています。

「キーボードイベントとマウスイベント」で何を学びますか?

クリック、キー入力、ポインターイベントを処理します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「キーボードイベントとマウスイベント」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. addEventListener の基本
  2. イベントオブジェクト
  3. preventDefault と stopPropagation
  4. キーボードイベントとマウスイベント
← JavaScript Academyに戻る