一般社団法人 全国個人事業主支援協会

COLUMN コラム

こんにちは。

前回の記事「JavaScriptのaddEventListenerでインタラクティブなウェブサイトを作る方法 その①」では、クリックやタッチなどの基本的なイベントリスナーについて紹介しました。
今回は、その続きとして、mousemoveやtouchmove、scrollイベントについて解説します。
これらのイベントを使うことで、さらに動きのあるウェブサイトを作れるようになります。

概要

`addEventListener`を使って、特定のイベントが発生したときに実行される関数を登録できます。
今回は、マウスの動きやスクロールに反応するイベントリスナーを紹介します。

イベントリスナーの基本

1.mousemoveイベント:
`mousemove`イベントは、ユーザーがマウスを動かしたときに発生します。
例えば、マウスの位置を追跡して表示するコードは次のようになります:


document.addEventListener('mousemove', function(event) {
    document.getElementById('position').textContent = `X: ${event.clientX}, Y: ${event.clientY}`;
});

2.touchmoveイベント:
`touchmove`イベントは、ユーザーがタッチスクリーン上で指を動かしたときに発生します。
以下は、タッチの位置を追跡する例です:


document.addEventListener('touchmove', function(event) {
    let touch = event.touches[0];
    document.getElementById('touchPosition').textContent = `X: ${touch.clientX}, Y: ${touch.clientY}`;
});

3.scrollイベント:
`scroll`イベントは、ユーザーがページをスクロールしたときに発生します。
例えば、スクロール位置を表示するコードは次のようになります:


window.addEventListener('scroll', function() {
    document.getElementById('scrollPosition').textContent = `スクロール位置: ${window.scrollY}`;
});

4.resizeイベント:
`resize`イベントは、ブラウザウィンドウのサイズが変更されたときに発生します。
以下は、ウィンドウのサイズを表示するコードの例です:


window.addEventListener('resize', function() {
    document.getElementById('windowSize').textContent = `幅: ${window.innerWidth}, 高さ: ${window.innerHeight}`;
});

5.dblclickイベント:
`dblclick`イベントは、ユーザーが要素をダブルクリックしたときに発生します。
例えば、要素をダブルクリックしたときに色を変更するコードは次のようになります:


document.getElementById('myElement').addEventListener('dblclick', function() {
    this.style.backgroundColor = 'lightblue';
});

6.contextmenuイベント:
`contextmenu`イベントは、ユーザーが右クリックしたときに発生します。
以下は、右クリックしたときにカスタムメニューを表示するコードの例です:


document.getElementById('myElement').addEventListener('contextmenu', function(event) {
    event.preventDefault();
    alert('カスタムメニューを表示');
});

実際の活用例

これらのイベントリスナーを使うことで、ユーザーの動きに応じたダイナミックな反応をウェブページに組み込むことができます。
私もこれらの方法を活用して、よりインタラクティブなウェブアプリケーションを作成しています。
ぜひ試してみてください!

The following two tabs change content below.

Y.Ryuji

未経験から3年間IT企業に勤めたのち、2023年1月からフリーランスに転身しました。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア