これは概念的な質問であるため、これに関するコードはありません。
ビューポートの上に配置したいコンテンツの上部にセクションがあるjqueryモバイルページがあります。私がやったことは、このセクションの高さに相当するサイレントスクロールを設定することです。これにより、非表示にしたいセクションのすぐ下までウィンドウがスクロールされます。
私が今抱えている問題は、ページがロードされてからサイレントスクロールがスローされるまでの間に、非表示にするセクションを見ることができる一瞬があることです。セクションを非表示にするために、silentscroll は合計 100 ピクセルずつジャンプします。これは明らかに、ページが表示された後にサイレントスクロールが実行されるためです。
ページが表示される前に、できれば pagebeforeshow イベントがスローされたときに実行されるように、scrollTop を jquery mobile に設定する方法はありますか? 私の知る限り、このイベントはすべての jquery モバイル ウィジェットが初期化された後にスローされるため、この時点でウィンドウに scrollTop を設定できませんでしたか?
私がやろうとしているのは、ユーザーがページジャンプを見る必要がないように、ページが表示される前にウィンドウに scrollTop 値を設定することです。
私はそれを自分で正しく設定できませんでした。イベントが可能かどうか疑問に思っています。
これは、私が再作成しようとしているセットアップの簡単なイメージです。緑色の四角は、ウィンドウの上にある「非表示」にしたいセクションです。青いボックスはモバイル ウィンドウを表し、灰色のボックスはドキュメントを表します。
編集: モバイル ブラウザーを確認しました。safari は、silentscroll を修正するときにジャンプやジッターがありません。IOS 上の Chrome モバイルにはジャンプ/ジッターがあります。ブラウザのパフォーマンスの問題なのか、それとも DOM/viewport の変更をキューに入れる方法なのか...