iPhoneを縦向きモードで保持しているアプリケーションを起動すると、iPhoneを回転させてもすべて正常に機能します。しかし、iPhone をランドスケープ モードで保持してアプリを起動すると、ランドスケープ起動後の最初の回転ではうまく機能せず、デザインが完全に台無しになります。これは、var viewport = $(window).height 値のシーケンスです。
縦向きの起動:
起動: $(window).height() = 460px / $(window).width() = 320px;
横向きを左に回転: $(window).height() = 300px / $(window).width() = 480px;
縦向きに回転: $(window).height() = 460px / $(window).width() = 320px;
.....だからこれはうまくいっている
ランドスケープの起動:
左のランドスケープを起動: $(window).height() = 300px / $(window).width() = 480px;
縦向きの回転: $(window).height() = 300px / $(window).width() = 480px; $(window).height() = 460px / $(window).width() = 320px;
横向きを左に回転: $(window).height() = 460px / $(window).width() = 320px; $(window).height() = 300px / $(window).width() = 480px;
縦向きの回転: $(window).height() = 300px / $(window).width() = 480px; $(window).height() = 460px / $(window).width() = 320px;
横向きを左に回転: $(window).height() = 460px / $(window).width() = 320px; $(window).height() = 300px / $(window).width() = 480px;
.....したがって、値を変更しなかった最初の回転アクションのために、これは完全に台無しになりました。
function onBodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
$(window).bind('orientationchange', function () {
if ($.mobile.activePage.attr("id") == "FirstPage") {
window.setTimeout(function () {
alert($(window).height() + " " + $(window).width());
}, 250);
}
});
}
助けていただきありがとうございますが、同じコードが Android デバイスで非常にうまく機能していることに注意してください。