LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-26
$("html,body").animate(
    {scrollTop: $(this).offset().top
})

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

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

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

let scrollY = $(window).scrollTop()

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0