こばゆた
今回はJava Scriptを使ってイベントを追加してみます
きなこ
HTMLやCSSで作ったものが動くって感動だね
こばゆた
簡単なイベントでも作れるとようやくJava Scriptが楽しくなってくるからね
1.addEventListener( )
セレクター名.addEventListener('イベントの種類', 関数名);
第1引数にはイベントの種類、第2引数には関数があれば関数名を記入します。
こばゆた
よく使われるイベントは以下の通りです
こばゆた
ここからは実際に作ってみます
1-1.関数を読み込む場合
<p>Hello!</p>
<div id="btn">change</div>
const text = document.querySelector('p'); //p要素を取得して定数"text"へ代入
const btn = document.getElementById('btn'); //id名"btn"を取得して定数"btn"へ代入
function changeText(){
text.textContent = 'Good Bye!';
}
//"text"の文章を'Good Bye!'に変える関数"changeText"を用意
btn.addEventListener('click',changeText);
//クリックすると関数"changeText"が呼び出される
Hello!
change
1-2.アロー関数に含める場合
<p>Hello!</p>
<div id="btn">change</div>
const text = document.querySelector('p'); //p要素を取得して定数"text"へ代入
const btn = document.getElementById('btn'); //id名"btn"を取得して定数"btn"へ代入
btn.addEventListener('click',() =>{
text.textContent = 'Good Bye!';
});
//クリックすると"text"の文章が'Good Bye!'に変わる
Hello!
change
こばゆた
ここからは実際に例を見ていこうと思います
なおここからはアロー関数を使う方法に統一して説明していきます
2.イベント
2-1.click, dblclick
文字通りクリックやダブルクリックがイベントを起こす条件となるものです。
<p id="text">Hello!</p>
<div id="clickBtn">click!</div>
<div id="dblClickBtn">dblclick!</div>
const text = document.getElementById('text'); //id名”text”を取得して定数"text"へ代入
const clickBtn = document.getElementById('clickBtn'); //id名”clickBtn”を取得して定数"clickBtn"に代入
clickBtn.addEventListener('click', () =>{
text.textContent = 'click!';
});
//"clickBtn"をクリックすると"text"のテキストが'click!'に変わる
const dblClickBtn = document.getElementById('dblClickBtn'); //id名”dblClickBtn”を取得し定数dblClickBtnに代入
dblClickBtn.addEventListener('dblclick', () =>{
text.textContent = 'double click!!';
});
//"dblClickBtn"をダブルクリックすると"text"のテキストが'double click!!'に変わる
Hello!
click!
dblclick!
2-2.mouseover, mouseout
mouseoverはカーソルがターゲットに乗ったとき、mouseoutはカーソルがターゲットから降りたときにイベントが発動します。
<div id="box"></div>
const box = document.getElementById('box'); //id名"box"を取得し定数"box"に代入
box.addEventListener('mouseover', () =>{
box.style.backgroundColor = 'red';
});
//"box"にカーソルが乗ったら背景色を赤にする
box.addEventListener('mouseout', () =>{
box.style.backgroundColor = '#ddd';
});
//"box"からカーソルが降りたら背景色を#dddにする
boxの上にカーソルを乗せてください
2-3.mousemove
mousemoveはマウスカーソルが移動している間にイベントが発動します。
<p id="point">枠内のX座標を取得します。</p>
<div id="frame"></div>
const frame = document.getElementById('frame'); //id名"frame"を取得し定数"frame"に代入
const point = document.getElementById('point'); //id名"point"を取得し定数"point"に代入
frame.addEventListener('mousemove', e =>{
point.textContent = `枠内のX座標は${e.offsetX}です`;
});
//"frame"の中でマウスを動かすと画面上でのx軸の座標を取得し、id名"point"のテキストが変わる
枠内のX座標を取得します。
eはeventの略でイベントの引数に設定する事でイベントの要素を取得できます。
2-4.mousedown, mouseup
<p id="mouse"></p>
const mouse = document.getElementById('mouse'); //id名"mouse"を取得し定数"mouse"に代入
window.addEventListener('mousedown', () =>{
mouse.textContent= '押してます';
});
//画面上でマウスを押し込むと、id名"mouse"のテキストが「押してます」に変わる
window.addEventListener('mouseup', () =>{
mouse.textContent= '離しました';
});
//画面上ででマウスを離すと、id名"mouse"のテキストが「離しました」に変わる
マウスボタンを押し続けてください
こばゆた
セレクターを”window”とすると画面上が対象となります
2-5.keypress
<p id="keypress">あなたが押したキーは…。</p>
const keyPress = document.getElementById('keyPress') //id名"keyPress"を取得し定数"keyPress"に代入
window.addEventListener('keypress', e =>{
keyPress.textContent= `あなたが押したキーは${e.key}です。`;
});
//画面上でキーボードを押すと押したキーが"keyPress"に表示される
文字キーと一部のキーが押された時のみ反応します。
こばゆた
どれが反応するかは実際にキーボードを打ってみてください
あなたが押したキーは…。
2-6.keydown, keyup
<p id="key"></p>
const key = document.getElementById('key'); //id名"key"を取得し定数"key"に代入
window.addEventListener('keydown', e =>{
key.textContent= `あなたが押したキーは${e.key}です。`;
});
//画面上でキーボードを押すと押したキーが"key"に表示される
keypressと異なり修飾キーを含めた全てのキーが押された時に反応します。
こばゆた
こちらもどれが反応するかキーボードを打ってみてください
あなたが押したキーは…。
<p id="key2"></p>
const key2 = document.getElementById('key2'); //id名"key2"を取得し定数"key2"に代入
window.addEventListener('keydown', () =>{
key2.textContent= '押してます';
});
//画面上でキーボードを押し込むと、id名"key2"のテキストが「押してます」に変わる
window.addEventListener('keyup', () =>{
key2.textContent= '離しました';
});
//画面上でキーボードを離すと、id名"key2"のテキストが「離しました」に変わる
キーボードのキーを押し続けてください
コメント