JavaScript Web制作 コーディング

iPadを判別するユーザーエージェント【iOS13以降対応】

iPadのみ適用したい処理があるんだけどどうしたらいい?

今回はそんな疑問にお答えしていきます。

画面幅によって処理を変えるのはレスポンシブ対応が出来れば簡単ですが、同じ画面幅でもiPadでは処理を変えたいという事があるかも知れません。

今回はその方法をご紹介します。

デモ

まずはこちらも見て下さい。

See the Pen
by junpei (@junpei-sugiyama)
on CodePen.


パソコンやスマホで見ている方は「これはiPad以外です」と表示されていると思います。

そしてiPadで見ている人は「これはiPadです」と 赤字で表示されていると思います。

 

コード解説

それではコードを見てみます。

まずはhtmlとcssです。

<div class="container">
  <p class="ipad">これはiPadです</p>
  <p class="no-ipad">これはiPad以外です</p>
</div>
.container {
  margin-top: 50px;
}
p {
  font-size: 30px;
  font-weight: 700;
  text-align: center;
}
.ipad {
  display: none;
}

ここで見るべきところは、cssの最後です。

これはiPadで表示されるテキストを通常非表示としています。

そして重要なのはjsになります。

// iPad判別
var ua = window.navigator.userAgent.toLowerCase();
if (
  ua.indexOf("ipad") > -1 ||
  (ua.indexOf("macintosh") > -1 && "ontouchend" in document)
) {
  // iPadでの処理
  $(".ipad").css("display", "block");
  $(".ipad").css("color", "red");
  $(".no-ipad").css("display", "none");
}

最後の3行でiPadでの処理を書いています。

  • 1行目:class名「iPad」を表示させる
  • 2行目:class名「iPad」のフォントを赤色にする
  • 3行目:class名「no-ipad」を非表示にする

となります。

今回はcssのプロパティを変更しただけですが、classの付け替えなど色んな処理が出来ます(ここではiPadでの処理の部分はjQueryを使用しているので、jQuery本体の読み込みを忘れないようにして下さい)

以上です。

あまり使う機会はないかも知れませんが、実際実務でも使った事があるので覚えておいて損はないかと思います。

-JavaScript, Web制作, コーディング