以下の内容はhttps://uga-box.hatenablog.com/entry/2021/08/09/000000より取得しました。


【WebAPI】scrollToでページ内スクロール

ページ内のあるセクションにidを付与しておき、ボタンをクリックしたらその位置までスクロールする機能を作りたい

jQueryを利用していた時代ではanimateをつかって次のように実装していたが

const $target = $('#js-scroll-to-target');
if (!$target) {
  return;
}
const position = $target.offset().top;
$('html, body').animate({
    scrollTo: position
}, 500, 'swing');

しかし、昨今ではjQueryを利用していないので、外部ライブラリなしで実装したい

そこで下のAPIを利用する

developer.mozilla.org

const target = window.document.getElementById('js-scroll-to-target');
if (!target) {
  return;
}
const position = target.getBoundingClientRect().top + window.pageYOffset;
window.scrollTo({
  top: position,
  behavior: 'smooth',
});

これで同様の実装をすることができた

注意点:IE11ではoptionsが利用できない

window.scrollTo自体は利用できるが、 IE11ではoptionsが利用できないので注意が必要

f:id:uggds:20210814154703p:plain:w400

下はOK

window.scrollTo(0, 1000);

下はoptions の使用しているのでIEでは使えない

window.scrollTo({
  top: 100,
  left: 100,
  behavior: 'smooth'
});

そろそろIE対応はしなくてよさそうなのだが、対応しているところはうっかり使わないようにしたい




以上の内容はhttps://uga-box.hatenablog.com/entry/2021/08/09/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14