【Javascript応用】タッチイベント (touchstart, touchmove, touchend)とは? – タッチ操作に対応する方法


タッチイベントは、タッチスクリーンデバイス上でのユーザーのタッチ操作に対応するための重要なイベントです。JavaScriptを使用してこれらのイベントを検知し、タッチ操作に応じた動作を実行することができます。この記事では、タッチイベントの基本的な概念から、実際のコーディングでの活用方法までを詳しく解説します。


タッチイベントは、タッチスクリーンデバイス(スマートフォンやタブレットなど)上でのユーザーのタッチ操作に反応するイベントです。これらのイベントを使用することで、ウェブアプリケーションやモバイルフレンドリーなウェブページを開発することができます。

目次

touchstartイベントとは

touchstartイベントは、ユーザーが画面上の要素をタッチした瞬間に発生します。指が画面に触れた瞬間に一度だけ発火します。

element.addEventListener('touchstart', function(event) {
    // タッチが開始された時の処理をここに記述する
});

touchmoveイベントとは

touchmoveイベントは、ユーザーがタッチしたまま指を移動させたときに発生します。タッチしたまま指を動かすと、継続して発生します。

element.addEventListener('touchmove', function(event) {
    // タッチ中に指が動いた時の処理をここに記述する
});

touchendイベントとは

touchendイベントは、ユーザーが指を画面から離した瞬間に発生します。指が画面から離れた瞬間に一度だけ発火します。

element.addEventListener('touchend', function(event) {
    // タッチが終了した時の処理をここに記述する
});

実践例

タッチイベントを使用して、スワイプやタップなどのタッチ操作に対応したインタラクティブなコンポーネントを実装することができます。

const element = document.getElementById('touchableElement');

let startX, startY;

element.addEventListener('touchstart', function(event) {
    startX = event.touches[0].clientX;
    startY = event.touches[0].clientY;
});

element.addEventListener('touchmove', function(event) {
    const endX = event.touches[0].clientX;
    const endY = event.touches[0].clientY;
    
    const distanceX = endX - startX;
    const distanceY = endY - startY;
    
    if (Math.abs(distanceX) > Math.abs(distanceY)) {
        // 横方向のスワイプ
        if (distanceX > 0) {
            // 右方向のスワイプ
        } else {
            // 左方向のスワイプ
        }
    } else {
        // 縦方向のスワイプ
        if (distanceY > 0) {
            // 下方向のスワイプ
        } else {
            // 上方向のスワイプ
        }
    }
});

まとめ

タッチイベント (touchstart, touchmove, touchend)は、タッチスクリーンデバイス上でのユーザーのタッチ操作に反応し、それに応じた動作を実行するための重要なイベントです。これらのイベントを活用することで、モバイルフレンドリーなウェブページやアプリケーションを開発することができます。

目次