カテゴリ: 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
JavaScript
JavaScriptでオブジェクト指向のカプセル化を学ぶ!初心者でもわかるクラスとプロパティの保護方法
New2
TypeScript
TypeScriptのEnum(列挙型)の使い方を解説!初心者でもわかる定数のグループ化
New3
TypeScript
TypeScriptとは?JavaScriptとの違いと導入メリットを徹底解説
New4
TypeScript
TypeScriptでExpressを初期化する方法!初心者向けバックエンド開発環境構築の完全ガイド
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの現在日時を取得する方法を完全ガイド!初心者でもわかるDate.now()とnew Date()
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでクエリパラメータを取得する方法を完全解説 URLSearchParamsの使い方を初心者向けに丁寧に説明
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptで最初に覚えたい基本構文まとめ
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptでフォームの値を取得する方法を徹底解説!valueプロパティの使い道