ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > JavaScript > 【jQuery】スマホのみで発火するtouchstartとtouchendの使い方

【jQuery】スマホのみで発火するtouchstartとtouchendの使い方

JavaScript

2022/04/18

2022/08/09

jQuery touchstart-touched

jQueryにはタッチデバイスでのみ発火する便利なタッチイベントがあります。タッチイベントが扱えるようになると、例えばアコーディオンメニューをスマホではタッチイベントで実装、PCではクリックイベントで実装するなど使い分けることができるようになります。

この記事ではタッチイベントで特によく使うtouchstart()touchend()の使い方」を解説していきます。

この記事で身につく内容
  • jQueryのtouchstart/touchendイベントの使い方

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

touchstartイベントはタップされたときに発火

jQueryのtouchstart()イベントは、タッチイベントの一つです。タッチデバイスで要素をタップしたときにイベントが発火します。

基本書式

$('セレクタ').on('touchstart', function(){
  // ここに処理の内容を書く
});

実際にコードを当てはめると下記のようになります。

<div class="box" id="js-box">touch!</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="main.js"></script>
.box {
  width: 200px;
  height: 200px;
  background: orange;
}
const box = $('#js-box');

box.on("touchstart", function () {
  box.css('background', "red");
});

出力結果

See the Pen jQuery-touchstart by ZeroPlus (@zeroplus-programming) on CodePen.

タッチデバイスで要素をタッチすると、cssメソッドによって背景色が変化します。クリックではタッチイベントが発火しません。

ZeroPlusgate50教材の動画

touchendイベントはタップした指が離れた後に発火

jQueryのtouchend()イベントは、タッチイベントの一つです。タッチデバイスで要素をタップして指が離れた後にイベントが発火します。

基本書式

$('セレクタ').on('touchend', function(){
  // ここに処理の内容を書く
});

実際にコードを当てはめると下記のようになります。

<div class="box" id="js-box">touch!</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="main.js"></script>
.box {
  width: 200px;
  height: 200px;
  background: orange;
}
const box = $('#js-box');
box.on("touchend", function () {
  box.css('background', "blue");
});

出力結果

See the Pen jQuery-touchend by ZeroPlus (@zeroplus-programming) on CodePen.

touchstart()イベントと同様に、タッチデバイスで要素をタッチするとcssメソッドによって背景色が変化します。こちらもクリックではタッチイベントが発火しません。

jQueryのタッチイベントについて

タッチイベントはタッチデバイスでイベントが発火します。クリックイベントはタッチデバイスでも発火しますが、発火するまでタイムラグがあります(ワンテンポ遅い)。

コンソール画面で確認すると、タッチデバイスでクリックイベントが最後に発火します。(※Moblieモード時)

例えば次のHTML/CSSのときの、touchstart()touchend()click()イベントの動きの違いを確認してみましょう。

<div class="box" id="js-box">touch!</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="main.js"></script>
.box {
  width: 200px;
  height: 200px;
  background: orange;
}
const box = $('#js-box');
box.on("touchstart", function () {
  console.log('touchstart');
  box.css('background','red');
});

box.on("touchend", function () {
  console.log('touchend');
  box.css('background','yellow');
});

box.on("click", function () {
  console.log('click');
  box.css('background','green');
});

出力結果

See the Pen touch-click by ZeroPlus (@zeroplus-programming) on CodePen.

タッチデバイスでもクリックイベントは発火しますが、touchstart()touchend()の2つのイベントよりも発火のタイミングが遅いです。タッチデバイスではタッチイベントを使うようにしましょう。

まとめ

touchstart()touchend()の2つのイベントは、タッチデバイスでのみ発火するタッチイベントです。タッチデバイスでのクリックイベントは発火のタイミングが遅いので、タッチイベントを使うようにしましょう。

 

jQueryのtouchstartとtouchendイベントまとめ

  • touchstart():タッチデバイスで要素をタップしたときにイベントが発火
  • touchend():タッチデバイスで要素をタップして指を離した後、イベントが発火
  • タッチデバイスでのクリックイベントは発火のタイミングが遅い
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

おすすめのタグ

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから