Edited at

自分用メモ:PC版Chrome上でのjQuery.animate scrollTop 謎の挙動

$("html,body").animate(

{scrollTop: $(this).offset().top
})

こんな感じでクリックしたコントロール位置にあわせてjQueryのアニメーションでスクロールさせると、他の要素を消したり追加したりした際に勝手にスクロール位置があらぬ位置に戻ってしまう。

どうやらChromeでしか起こらないので、ブラウザのスクロール位置の記憶が邪魔しているっぽい。

予め、処理前に現在のスクロール位置を記憶してから、処理が終わったときにsetTimeout()を使って元のスクロール位置に戻すようにすると強引に解決させることができる。

let scrollY = $(window).scrollTop()

//~~~~~~~~~~
//処理
//~~~~~~~~~~

//ブラウザのスクロール位置記憶バグを無視
setTimeout(function(){$("html,body").scrollTop(scrollY)},0)