「要素 スクロール」で検索したところ以下のページを見つけた。
Element.getBoundingClientRect() でビューポート左上を基準とした top, left の値が得られるので、これに window.pageXOffset, Window.pageYOffset (Page 左上から ViewPort までの offset)を加えれば、ページ左上を基準とした Element の top, legt が得られるとので、あとは、window.scroll() 等のメソッドに放り込めば目的の位置までスクロールするとの事。
例えば以下のようにすると #hoge までスクロールする。
behavior は "smooth" だとスムーススクロール、"auto", "instant" だと瞬時に移動するらしい。デフォルトは "auto" との事。
- Qiita / 7shi / 2020-07-11: 指定したHTML要素にスクロール
- iPentec / 2019-07-10: 指定した要素の位置へスクロールする - JavaScript プログラミング
Element.getBoundingClientRect() でビューポート左上を基準とした top, left の値が得られるので、これに window.pageXOffset, Window.pageYOffset (Page 左上から ViewPort までの offset)を加えれば、ページ左上を基準とした Element の top, legt が得られるとので、あとは、window.scroll() 等のメソッドに放り込めば目的の位置までスクロールするとの事。
例えば以下のようにすると #hoge までスクロールする。
let selector = "#hoge"; let e = document.querySelector(selector); let rect = e.getBoundingClientRect(); let x = rect.left + window.pageXOffset; let y = rect.top + window.pageYOffset; scroll({top: y, left: x, behavior: "smooth"});
behavior は "smooth" だとスムーススクロール、"auto", "instant" だと瞬時に移動するらしい。デフォルトは "auto" との事。
タグ
コメントをかく