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でその様子を図で表すと、下のような感じですね。
いくつかの案件で使ったのですが、これは今後も使うことがありそうです。勉強になりました。
このページを共有する