1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iPhoneXで閲覧しているかどうかをJavaScriptで判定したい!

Last updated at Posted at 2018-09-04

iPhoneXで閲覧しているか否かは、このように取得できそうです。
画面下付きのメニューをつけたいけど、画面下のホームに戻るバーなどが邪魔なのでデザインを調整したい!なんて時にも活用できます。

var isIPhoneX = window.devicePixelRatio === 3 &&
  (window.screen.width === 375 || window.screen.height === 375) &&
  /iPhone/.test(window.navigator.userAgent);

// たとえばjQueryならこんな感じで使える。
$('.bottom-menu').toggleClass('is-iphonex', isIPhoneX);

window.devicePixelRatio は見慣れない方も多いかもしれませんが、CSSで指定した1pxが、実際の画面ではいくつのピクセルで表示されているかを取得できます。iPhoneXのretinaディスプレイではCSSで1pxの線などを引くと、スクリーン上は3pxの物理ピクセルで表示されます。

さいごに

  • 2018年9月現在ではこれでいけそうですが、新しいiPhoneの機種が出たり、アップデートがあった場合にも対応できる保証はありません。
  • この記事は自分のメモ用に書いたものです。
  • しょしんしゃなので、まちがっているところがあれば、やさしくおしえてください。
1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?