JavaScriptでスマートフォンの向きを判定する

JavaScriptでスマートフォンやタブレットの向きを取得してみます。

サンプルコード

スマートフォンの向きはwindow.orientationで取得できます。
縦向きの場合は0か180、横向きの場合は90か-90が返ってきます。

HTML

<div id="direction"></div>

JavaScript

var ua = navigator.userAgent.toLowerCase();
// iPhone
var isiPhone = (ua.indexOf('iphone') > -1);
// iPad
var isiPad = (ua.indexOf('ipad') > -1);
// Android
var isAndroid = (ua.indexOf('android') > -1) && (ua.indexOf('mobile') > -1);
// Android Tablet
var isAndroidTablet = (ua.indexOf('android') > -1) && (ua.indexOf('mobile') == -1);

// iOS
if(isiPhone || isiPad) {
	window.onorientationchange = directionCheck;
}
// Android
if(isAndroid || isAndroidTablet) {
	window.onresize = directionCheck;
}
directionCheck();

function directionCheck() {
	var direction = Math.abs(window.orientation);
	if(direction == 90) {
		document.getElementById('direction').innerHTML = '横向き';
	} else {
		document.getElementById('direction').innerHTML = '縦向き';
	}
}

スマートフォンの向きを変更したときのイベントがiOSとAndroidで異なるので、ユーザーエージェントで分けて処理を行っています。
スマートフォンの向き取得のデモページ
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930