2

asp.net 2.0 を使用して Web サイトを開発しています。最近、 divjavascriptを保存するために数行追加しました。問題は、ページが読み込まれると、div のスクロール位置が一番上から始まり、保存された位置にジャンプすることです。このジャンプ効果を取り除くにはどうすればよいですか? ウェブサイトは www.collectedlight.net にあります。scroll positionacross postbacks


スクロール位置を維持するために使用しているJavaScriptは次のとおりです。

window.onload = function () {
   //maintain the scroll position for the list of photos across postbacks
   var scrollPos = document.getElementById('ctl00_pagePlaceHolder_photoListScrollPos').value;
   document.getElementById('photoListScrollBar').scrollTop = scrollPos;
}

//save the scroll position of the list of photos
function SaveScrollPos() {
   var scrollPos = document.getElementById('photoListScrollBar').scrollTop;
   document.getElementById('ctl00_pagePlaceHolder_photoListScrollPos').value = scrollPos;
}

スクロール位置は保存されますが、ページが読み込まれると、最初にスクロール位置が一番上に設定されてから、保存されたスクロール位置にジャンプします。ジャンプ効果なしで、保存されたスクロール位置にページをロードしたい。これは可能ですか?

4

1 に答える 1

0

コードをイベントに添付すると、window.onloadすべてのページ アセット (画像を含む) が読み込まれるまでコードが実行されなくなります。これが、画像の 1 つを読み込むのに時間がかかる場合にのみ問題が発生する理由です。DOMContentLoaded代わりにイベントに添付することで、問題を解決できる可能性があります。ページの下部にあるこのイベントにアタッチすることで、DOM と CSS が読み込まれ、基本的にページ レイアウトの準備が整うと、すべてのページ アセットが読み込まれるのを待つことなく、コードが実行されるようになります。詳細については、http: //ablogaboutcode.com/2011/06/14/how-javascript-loading-works-domcontentloaded-and-onload/を参照してください。

于 2013-02-15T22:00:07.057 に答える