Edited at

JavaScriptで端末の画面回転角度を取得する

仕事中に詰まったのでメモ


画面の回転を取る方法

const angle = window.screen.orientation.angle;


ベンダー対応版


  • mozOrientation

  • msOrientation

const _screen = window.screen;

const _orientation = _screen.orientation || _screen.mozOrientation || _screen.msOrientation;
const angle = _orientation.angle;


iOSのSafariも対応版


  • iOS/Safariは、Screen Orientation APIに非対応



    • window.orientation を使う



const _screen = window.screen;

const _orientation = (_screen
&& (_screen.orientation || _screen.mozOrientation || _screen.msOrientation))
|| ('orientation' in window && {angle: window.orientation})
|| null;
if (!_orientation || typeof _orientation.angle !== 'number') {
// 取得失敗
}
const angle = _orientation.angle;

一応これで全端末対応できるはず


2019-06-19追記

window.orientationをそのまま評価すると、 0(回転していない)の時にfalse扱いとなりiOSで正しく取得できない問題があったので修正しました