0

アンカーポイントでページにリンクしようとしています。つまり:

<a href="/about/#content/">About</a>

<div id="content">…&lt;/div>

通常のブラウザーの動作は、ページをレンダリングしてから、アンカー/ID にジャンプすることです。ページがレンダリングされる前にページをアンカー位置に配置する方法はありますか?

使ってみました

$(document).scrollTop( $('#content').offset().top );

ページ全体の読み込みのフラッシュを防ぐのに十分な速さで位置に移動する可能性があると考えていますが、DOM の準備が整うまで機能しないため、十分な速さではありません。

要素を選択的に非表示にし、位置に移動してから表示することで回避策をまとめることができますが、私が気付いていないアプローチがあるかどうか疑問に思っています.

4

1 に答える 1

0

他に直接的な方法はないと思います。特定の div へのより高速なリンクを保証できるのは、その div を DOM でできるだけ早く利用できるようにすることだけです。

これを行うには、必要な div をロードして静的にリンクし、他の div のコンテンツを動的にロードします。繰り返しますが、これを行っている間、コードを実行して、ページが常にこの div にスクロールされるようにする必要があります。

$(document).scrollTop( $('#content').offset().top );

ページの他のコンテンツが動的に読み込まれると、ページサイズが大きくなる傾向があるため、スクロール位置を常にコンテンツ div に保持する必要があるため、定期的に行います。

于 2013-02-11T08:03:44.107 に答える