-1

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 デバイスで非常にうまく機能していることに注意してください。

4

1 に答える 1

0

Phonegap は現在バージョン 2.2 です。回転と向きに関する多くの修正が含まれている最新バージョンにアップグレードしてください。詳細については、phonegap の Web サイトを参照してください。

于 2012-12-20T14:21:01.830 に答える