私のアプリには、ボタンがクリックされるたびにフォームフィールドセットを本文に追加するボタンがあります。ページを新しい要素までスクロールしたかったのですが、明らかな理由 (バブリングなど) で機能しませんでした。私は簡単な修正を思いつきました...
function scroll(pixels){
$('html, body').animate({
scrollTop: pixels
}, 1000);
};
function addObservation(x){
$('body').append(x);
newFieldSet = $('fieldset').last();
pixelsFromTop = newFieldSet.offset().top;
scroll(pixelsFromTop);
};
$(document).on("click", "#add_observation", function(){
addObservation("<fieldset>SOME FORM FIELDS HERE</fieldset>");
});
そのため、フィールドセットを追加するたびに、jQuery は最後に追加されたものを見つけ、.offset().top
フィールドセットが上から何ピクセル離れているかを測定し、その距離だけウィンドウをスクロールします。