この記事でわかること
- イベントとは何か?
addEventListenerの使い方- よく使うイベント一覧
- クリック・入力・スクロール・読み込みイベントの実例
- 初心者がつまずくポイント
JavaScriptの学習で避けて通れないのが イベント。
Webサイトの「動き」や「ユーザー操作」に反応させるための仕組みです。
イベントとは?
ユーザーの操作やブラウザの動きに反応して処理を実行する仕組み のこと。
イベントの具体例
- ボタンを クリック した
- テキストを 入力 した
- ページを スクロール した
- ページの読み込みが 完了 した
- マウスを 乗せた(hover)
これらのタイミングに合わせて JavaScript を実行することで
Webサイトが「動く」ようになります。
JavaScriptのイベント処理の基本:addEventListener()
最も一般的な書き方が addEventListener()。
基本構文
要素.addEventListener("イベント名", function() {
// イベントが起きたときの処理
});1. クリックイベント(click)
📘 例:ボタンをクリックしたら文字を表示
HTML
<button id="btn">クリック</button>JavaScript
const btn = document.getElementById("btn");
btn.addEventListener("click", function() {
alert("ボタンがクリックされました!");
});
2. 入力イベント(input)
ユーザーが文字を入力するたびに発火。
📘 例:入力した文字をリアルタイムで表示
HTML
<input id="text" type="text">
<p id="output"></p>JavaScript
const text = document.getElementById("text");
const output = document.getElementById("output");
text.addEventListener("input", function() {
output.textContent = text.value;
});
3. マウスイベント(mouseover / mouseout)
マウスが乗ったり離れたりした時のイベント。
📘 例:マウスが乗ったら色を変える
const box = document.getElementById("box");
box.addEventListener("mouseover", () => {
box.style.backgroundColor = "lightblue";
});
box.addEventListener("mouseout", () => {
box.style.backgroundColor = "white";
});
4. スクロールイベント(scroll)
ページをスクロールした時に発火。
📘 例:スクロール量を表示
window.addEventListener("scroll", () => {
console.log(window.scrollY + "pxスクロールしました");
});
5. ページ読み込みイベント(DOMContentLoaded)
ページのHTML読み込み完了後に発火。
画像などの読み込みを待ちたい時は load を使用。
📘 HTML読み込み完了後に処理する
document.addEventListener("DOMContentLoaded", () => {
console.log("DOMの読み込みが完了しました");
});
よく使うイベント一覧
| イベント名 | 意味 | よく使う場面 |
|---|---|---|
| click | クリック | ボタン操作 |
| input | 入力があった | フォーム入力 |
| change | 値が変わった | セレクトボックスなど |
| submit | フォーム送信 | バリデーション |
| mouseover | マウスが乗った | ホバー演出 |
| mouseout | マウスが離れた | ホバー終了 |
| scroll | スクロール | 要素アニメーション |
| keydown | キーを押した瞬間 | キーボード操作 |
| keyup | キーを離した時 | 入力判定 |
| load | ページ全体読み込み完了 | 画像読み込み後の処理 |
| DOMContentLoaded | HTML構造の読み込み完了 | 初期化処理 |
⚠ 初心者がつまずくポイント
❌ 1. HTMLより先にJSを読み込んでエラーが出る
→ DOMがまだ存在しないため。
✔ 対策
DOMContentLoadedを使う- または script タグを body の最後に置く
❌ 2. addEventListener と onclick を混同
element.onclick = function() {}
は1つのイベントしか登録できない。
✔ addEventListener なら複数登録できる
❌ 3. IDの取得ミス
getElementById("Btn") と HTML が "btn" だと動かない
→ 大文字・小文字が違うだけでNG
まとめ
- イベント = 操作や動きに反応してJSを実行する仕組み
- 基本は addEventListener を使う
- よく使うイベントは「click」「input」「mouseover」「scroll」「DOMContentLoaded」
- イベントを理解すると、Webサイトに「動き」を追加できる