0

JavaScript と HTML を使用して Windows 8 アプリを開発しています。

  1. さまざまなセクションが水平に配置されたページがあります。これらのセクションへのリンクは別のページにあります。その特定のセクションからページをロードする必要があります (つまり、ページはこのセクションから開始する必要があります)。

  2. グリッド テンプレートを使用しており、メイン ページにリストビューがあります。グループ内のアイテムをクリックすると、そのページに移動してメイン ページに戻ります。以前に選択したセクションからメイン画面をロードしたいのですが、セマンティック ズームからのように、画面が自動的にそのセクションにスクロールするはずです。

この点での助けは非常に役立ちます。

ありがとう

4

3 に答える 3

0

Ma_li が言ったように、左スクロールは 1 つの解決策です。特にListView以外のコンテンツの場合です。ここで重要なのは、戻るときにどれだけのエクスペリエンスを維持したいかです。1 つのオプション (リストビュー以外のコンテンツの場合) は、画面に表示したい要素を見つけて、その要素を呼び出すことscrollIntoViewです。ただし、これはアイテム画面に表示するだけです。左端 (または BIDI 言語の場合は右端) まで移動するわけではなく、要素全体を画面に表示するのに十分なだけスクロールします。

ListViewsの場合、indexOfFirstVisibleItem (または indexOfLastVisibleItem) を使用してリストビューを正しい位置にスクロールする必要があります。リストビューは仮想化されたコントロールであるため、これは重要です。これにより、リストビューの位置をスクロールするための最も正確で信頼性の高い方法が提供されます。

于 2012-12-05T16:29:58.800 に答える
0

最初の部分では、コンテナーの scrollLeft プロパティを、スクロール先の要素の offsetLeft プロパティに設定するだけで十分です。

2 番目の部分は、別の場所に移動する前に ListView の scrollPosition 属性を格納し、戻った後に古い値に設定することで実現できます。

于 2012-12-05T10:03:21.987 に答える
0

ありがとうドミニク & ma_il

最初の質問に document.getElementBy("Id").focus() を試してみましたが、うまくいきました。しかし、私はこれで問題を抱えています。

4 つの div があります。水平方向に「divA divB divC divD」と表示します。divA のデータはクラウドから取得されます。メイン画面で divD のリンクをクリックすると。divA の読み込みに時間がかかるため、初めて対応するセクションに移動することはありません。divD のリンクを 2 回クリックすると、それぞれのセクションに移動します。setInterval() を使用すると機能しますが、ページがロードされてから divD にスクロールすると、DivA が数秒間表示されますが、これは良くありません。

于 2012-12-11T11:18:52.430 に答える