1

jquery-mobile (1.1.1) と Adob​​e PhoneGap Build を使用して iOS アプリケーションを作成しました。アプリには固定のヘッダーとフッターがあり、トランジションは「なし」に設定されています。フッターには 4 つのナビゲーション ボタンが含まれており、JavaScript を介してアプリ内の 4 つのページに移動できます。複数ページのテンプレートを使用したため、HTML ファイルは 1 つです。

もともと、「data-position:fixed」を使用してヘッダーとフッターを画面に配置していましたが、ページを切り替えるときに不要な点滅やページ ジャンプが発生していました。そこで、ヘッダーとフッターを画面に固定するために CSS を使用することに切り替えました (この投稿で概説されているように: https://github.com/jquery/jquery-mobile/issues/4024 )。これで点滅の問題は解決しましたが、別の問題が発生しました。

問題は、どのページでも初めてテキストをスクロールすると、フッターがテキストと一緒に移動する (固定されない) ことです。しかし、それ以降は、テキストをスクロールするたびに、フッターが固定されたままになります。明確にするために、ここにいくつかの例を示します。

例 1

  • アプリを開き、最初のページのテキストをスクロールすると、フッターが移動します。
  • 2 ページ目に切り替え、テキストをスクロールします。フッターは固定されたままです。

例 2

  • アプリを開き、最初のページでスクロールせずに 2 ページ目に切り替えると、フッターが 2 ページ目に移動します。
  • 最初のページに戻ります。フッターは固定されたままです。

もう 1 つ言及する必要があります。ページ遷移を有効にすると、問題は最初のページでのみ発生します。例えば。アプリが読み込まれ、最初のページのテキストを最初にスクロールせずに別のページに切り替えると、フッターは固定されたままになります。

これを修正する方法に関する提案は大歓迎です。ありがとう。

4

1 に答える 1

0

まったく同じ問題に遭遇し、アプリの起動時に次のハックを使用して修正しました。Phonegap/Cordova メソッドを使用して手動でスプラッシュ スクリーンを非表示にする前に、この .js スニペットを実行することに注意してください。これにより、ユーザーがホーム画面を見る前のちらつき/シフトを防ぐことができます。

function fixJqmScrollBug() {
    window.scrollTo(0, 1);
    setTimeout(function() {
        window.scrollTo(0, 0);
        if( navigator && navigator.splashscreen ) navigator.splashscreen.hide()
    }, 20);
}

このコードは、最初に固定フッターを壊す最初のスクロールをシミュレートしますが、デフォルトの位置に戻します。修正が機能するために、(0,0) のスクロールに戻る位置を少し遅らせる必要があったため、20 ミリ秒のタイムアウトが発生しました。

于 2012-12-01T00:43:01.370 に答える