2012-03-01 8 views
0

my pageには、ヘッダーDIV、リンク、ターゲットDIVがあります。リンクは、jQuery load()を介して、ターゲットDIVの画像をロードします。なぜAjaxはウィンドウのスクロール位置をゼロにリセットしますか?

問題:ビットを下にスクロールしてリンクをクリックすると、ウィンドウのスクロール位置がゼロにリセットされることがわかります。それはAjaxのイベントですが、スクロールの位置はまったく同じです。

これは、初めてクリックするときにのみ当てはまることに注意してください。ページをリロードしてもう一度クリックすると、スクロール位置が変更されずに画像が読み込まれます(通常の動作)。問題を再現するには、ブラウザキャッシュをきれいにする必要があります。

ここで何が起こっているのか考えてみましょうか?

+0

次の世代のためにコードとデモを投稿してください。しばらくするとあなたのリンクがダウンする可能性があります。 –

答えて

1

それは、あなたのターゲットdivがその子に応じてサイズを変更するからです。たとえばあなたがtarget866px(画像の高さ)までの高さを設定し、(現時点その1000pxで)小さいものにあなたの子供のdiv要素の高さを設定した場合

、あなたは(これらの問題を経験するべきではありません少なくとも私はクロームの下でもうこの問題はありません)

+0

スクロール位置のリセットは、再度ページリロード後(F5)? – drake035

+0

状況によってはまだ発生します。これは、リロードすると、初期状態としての位置を記憶するためです。再ロードする前にスクロールしてから、その問題を再現してみてください。それでも問題は発生します。 – MMM

+0

あなたは正しかった、MMMに感謝します。 – drake035

1

非常に簡単です...インラインハイト= 1500pxのターゲット内にdivがあります。あなたはそれをajaxに置き換えて、新しいコンテンツの高さが同じでないため本体が縮小しています

+0

これが問題の原因であった場合は、リンクをクリックするたびに問題が発生するはずです。しかし、これは初めての場合にのみ発生します。ページをリロードしてもう一度クリックすると、スクロール位置がリセットされずに画像が1500pxに置き換えられます。 – drake035

+0

はブラウザに依存します... FFで私にとってうまくいきます – charlietfl

関連する問題