カテゴリ: JavaScript 更新日: 2026/02/04

JavaScriptのタッチイベント(touchstart, touchendなど)の基本

JavaScriptのタッチイベント(touchstart, touchendなど)の基本
JavaScriptのタッチイベント(touchstart, touchendなど)の基本

先生と生徒の会話形式で理解しよう

生徒

「スマホやタブレットで画面をタッチしたときに反応する処理を作りたいです。」

先生

「それなら、JavaScriptのタッチイベントを使います。代表的なものはtouchstarttouchendtouchmoveなどです。」

生徒

「マウスイベントと何が違うんですか?」

先生

「マウスイベントはパソコンのマウス操作用で、タッチイベントは指やスタイラスで画面を操作したときに発生します。スマホやタブレット向けのイベントですね。」

1. touchstartイベントとは?

1. touchstartイベントとは?
1. touchstartイベントとは?

touchstartイベントは、指やスタイラスで画面に触れた瞬間に発生します。ボタンを押す感覚で処理を開始したいときに便利です。


const touchArea = document.getElementById("touchArea");

touchArea.addEventListener("touchstart", function() {
  console.log("画面に触れました");
});

この例では、指定した要素に触れるとコンソールにメッセージが表示されます。

2. touchendイベントとは?

2. touchendイベントとは?
2. touchendイベントとは?

touchendイベントは、指やスタイラスを画面から離した瞬間に発生します。タッチの終了を検知して処理を行いたい場合に使えます。


touchArea.addEventListener("touchend", function() {
  console.log("指を離しました");
});

この例では、タッチを終えたときにコンソールにメッセージが出ます。

3. touchmoveイベントとは?

3. touchmoveイベントとは?
3. touchmoveイベントとは?

touchmoveイベントは、指を画面上で動かしたときに発生します。スクロールやスワイプの動きを検知したいときに便利です。


touchArea.addEventListener("touchmove", function(event) {
  console.log("タッチ移動 X:", event.touches[0].clientX, "Y:", event.touches[0].clientY);
});

この例では、指を動かすたびに座標がコンソールに表示されます。

4. 複数の指での操作(マルチタッチ)

4. 複数の指での操作(マルチタッチ)
4. 複数の指での操作(マルチタッチ)

touchesプロパティを使うと、同時に画面に触れている指の情報を取得できます。2本指で拡大縮小や回転のジェスチャーを検知する際に役立ちます。


touchArea.addEventListener("touchmove", function(event) {
  console.log("タッチ中の指の数:", event.touches.length);
});

複数の指で触れると、event.touches.lengthで指の本数がわかります。

5. 実用例:タッチで色が変わるボックス

5. 実用例:タッチで色が変わるボックス
5. 実用例:タッチで色が変わるボックス

タッチイベントを使うと、スマホやタブレット向けに直感的な操作が可能です。例えば、ボックスを触ると色が変わるUIを作れます。


touchArea.addEventListener("touchstart", function() {
  touchArea.style.backgroundColor = "lightgreen";
});

touchArea.addEventListener("touchend", function() {
  touchArea.style.backgroundColor = "white";
});

タッチ開始で緑色に変わり、離すと元に戻ります。ユーザーに視覚的なフィードバックを与えられます。

6. 注意点とコツ

6. 注意点とコツ
6. 注意点とコツ

タッチイベントを使うときは、次の点に注意してください:

  • タッチイベントはスマホやタブレット向けなので、パソコンでは動作しない場合がある
  • touchmoveを多用するとパフォーマンスに影響することがある
  • スクロールとの兼ね合いで、必要に応じてevent.preventDefault()でデフォルトの動作を抑制することもある
  • マルチタッチ時の座標取得にはevent.touchesを活用する

これらを意識すると、スマホやタブレット向けの直感的で快適な操作を実装できます。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】