古いios safariでも非jQueryでページトップへのスムーズスクロールをさせる方法

Filed under: css,JavaScript — kdcs @ 25年10月8日 水曜日

ページトップへのスクロールをスムーズに移動させるためにjQuery+smoothscroll.jsを使用していたが、以下のようにjavascriptだけで動作するようにした。

common.js

const topButton = document.querySelector('#page-top-js');

topButton.addEventListener('click', () => {
  window.scrollTo({
    top: 0,
    behavior: 'smooth'
  });
});

これでは古いiosのsafariでは「behavior: ‘smooth’」がサポートされていないので、「smoothscroll.polyfill」を使う。

footer.php
※common.js内の記述より先に読み込む必要があるのでfooter.phpに記述する。

<script src="https://unpkg.com/smoothscroll-polyfill/dist/smoothscroll.min.js"></script>
<script>
  // ポリフィルを初期化
  smoothscroll.polyfill();
</script>

但し、2022年4月時点で最新のSafari15.4にて、scroll-behaviorが使用できるようになっているので最近のブラウザだけに対応すればよければ以下のcssでOK。

html {
  scroll-behavior: smooth;
}

サイト内検索

カテゴリー

最近の投稿

« |古いios safariでも非jQueryでページトップへのスムーズスクロールをさせる方法| »
↑上に戻る