iOS,Androidのスマートフォンやタブレットなどの「端末を縦向き、横向き、上下逆向きに回転したときを検出をして、それぞれ処理をわける」必要がありました。
JavaScriptでiOS,Android端末の縦向き、横向き、上下逆向きの回転を検出する方法
どうやってやるんだろ・・・と調べていたのですが「JavaScriptを使って検出する方法」がAppleの「Handling Events」ページに載っていましたので、参考にして以下のように書きました。
HTML
<div id="output"></div>
JavaScript
document.addEventListener("DOMContentLoaded", function() {
updateOrientation();
});
window.addEventListener('orientationchange', updateOrientation, false);
function updateOrientation() {
let disp = "";
switch(window.orientation) {
case 0:
disp += "縦向き";
break;
case -90:
disp += "横向き:右回転";
break;
case 90:
disp += "横向き:左回転";
break;
case 180:
disp += "縦向き:上下逆向きに回転";
break;
}
document.getElementById('output').innerHTML = disp + '(' + window.orientation + ')';
}コードがやっていること
イベントリスナー「orientationchange」を使って、端末を傾けた時の角度を「window.orientation」で取得して「switch」を使ってそれぞれ処理を分けています。
「window.orientation」取得できる値は以下の4パターンです。
| 0 | 縦向き |
| -90 | 横向き:右回転 |
| 90 | 横向き:左回転 |
| 180 | 縦向き:上下逆向きに回転 |
例えばiPhoneでその様子を図で表すと、下のような感じですね。

いくつかの案件で使ったのですが、これは今後も使うことがありそうです。勉強になりました。
このページを共有する