Safariでスムーススクロールを実装する(非jQuery)
jQueryを使わない案件、もしくは途中から入ってjQueryのエイリアスがぐちゃぐちゃになっててjQuery使いたいとき、
// ページトップ var pagetop_elements = document.getElementById('pagetop'); pagetop_elements.addEventListener('click', scroll_to_top); function scroll_to_top() { window.scroll({ top: 0, behavior: 'smooth' }); };
こんなスクリプト書く。
でも、Safari(iOS含む)は、この「behavior: 'smooth'」に対応してないし、するつもりもないらしい。
edgeは対応したのにね。
そんな時役に立つのが、
Polyfill.io
https://polyfill.io/v3/url-builder/
ここで、必要なpolyfillを選択して、urlをgetする
今回は必要なのが smoothscroll だけだからそこにチェックすると、
https://polyfill.io/v3/polyfill.min.js?features=smoothscroll
なんでURLになる
結論
自分が作ったjsファイルを読み込む前に
<script src="https://polyfill.io/v3/polyfill.min.js?features=smoothscroll"></script>
の1行を入れるだけ。