私はモバイル Web アプリに取り組んでいます。縦向きモードのアプリは、横向きモードとは異なる外観にする必要があります。これが、次のコードを書いた理由です。
function orientation(){
if (window.innerHeight > window.innerWidth) {
$('.ui-page').removeClass("pageL").addClass("pageP");
$(window).resize();
$('meta[name="viewport"]').attr('content', 'height=device-height,width=400,user-scalable=no')
$(window).resize();
alert('portrait');
} else {
$('.ui-page').removeClass("pageP").addClass("pageL");
$('meta[name="viewport"]').attr('content', 'initial-scale=1, maximum-scale=1');
$(window).resize();
$('meta[name="viewport"]').attr('content', 'height=device-height,width=960,user-scalable=no');
$(window).resize();
alert('landscape');
};
};
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
orientation();
}, false);
Android タブレットではすべてが Chrome で動作しますが、iPad と Android のデフォルト ブラウザでは動作しません。デフォルトの Android ブラウザーでは、たとえば縦向きでページを読み込んでタブレットを 90 度回転すると、機能が再度実行されますが、それでも彼は縦向きであると表示されます。iPad ではすべてが機能しますが、横向きにすると再びズームアウトしません。iPad の問題は、iPad のリサイズ機能が無効になっていることが関係していると思われますが、解決できません。
一部の Android デバイスでは横向きが 0 度と見なされ、縦向きが 0 度と見なされるため、innerHeight と Width を使用します。