前提
Webサイトを制作しています。
ページ外のリンクへのスムーススクロールのJavaScriptの書き方が調べてもわかりませんでした。
ページ内リンクへのスムーススクロールのJavaScriptは以下のように書いています。
jQueryは使わない方向でお願いします。
実現したいこと
下層ページからトップページのリンクにスムーススクロールするようにしたいです。
該当のソースコード
JavaScript
1const smoothTargets = document.querySelectorAll('a[href^="#"]'); 2const header = document.getElementById('header'); 3 4 smoothTargets.forEach((smoothTarget) => { 5 smoothTarget.addEventListener('click', (e) => { 6 e.preventDefault(); 7 let href = smoothTarget.getAttribute('href'); 8 let targetElement = (href === '#' || href === '') ? 'hml' : document.getElementById(href.replace('#', '')); 9 10 const rect = targetElement.getBoundingClientRect().top; 11 const offset = window.pageYOffset; 12 const headerHeight = header.clientHeight; 13 const scroll = rect + offset - headerHeight; 14 15 window.scrollTo({ 16 top: scroll, 17 behavior: 'smooth', 18 }); 19 }); 20 });

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。