次のような状況があるとしましょう。
- ページの長さは 4000 ピクセルです。
- ユーザーがページを下にスクロールしたため、1000 ピクセルのコンテンツがビューポートの上に隠れています。
次に、ユーザーがボタンをクリックすると、AJAX を介して任意の長さのコンテンツがページの上部に読み込まれ、ボタン (およびユーザーが見ていたコンテンツ) がビューポートの下に押し出されます。
ボタンをクリックする前にユーザーが見ていたコンテンツまでスクロールダウンするJavascriptコールバックを作成しようとしましたが、エクスペリエンスはシームレスではありません(新しいコンテンツが挿入されると「上にスクロール」し、続いて「下にスクロール」します) 」)。
ユーザーが見ているコンテンツにビューポートを固定しておく方法はありますか?
これは単純化された例ですが、ポイントを理解する必要があります。
<div style="height: 1000px; width:1000px;" id="top-div">some content above the fold</div>
<button id="button">Click Me</button>
<img src="img.jpg" alt="Some image the user was looking at when they clicked the button." />
<script>
$("button").click(function() {
$.get('/new/content', function(response) {
$("#top-div").before(response);
});
});
</script>