前提・実現したいこと
ボタンを押した際、ページトップへスムーズスクロールさせたいのですが、
JavaScriptのwindow.scrollToで、behavior: 'smooth'が適用されません。。
パっと一瞬でトップが表示されてしまいます。
エラーメッセージ
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="jp"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link rel="stylesheet" href="../css/index.css"> 7 <script src="../move/index.js"></script> 8 <title></title> 9</head> 10<body id="body"> 11 <div></div> 12 <a href="#body"> 13 <img id="scroll-icon" src="../images/move-icon.png" alt=""> 14 </a> 15</body> 16
JavaScript
1document.querySelectorAll('a[href^="#"]').forEach(link => { 2 link.addEventListener('click', e => { 3 e.preventDefault() 4 5 const target = document.querySelector(link.hash), 6 offsetTop = window.pageYOffset + target.getBoundingClientRect().top 7 console.log(target.getBoundingClientRect().top) 8 9 window.scrollTo({ 10 top: offsetTop, 11 behavior: 'smooth' 12 }) 13 }) 14})
補足情報
VSCode Node.js
回答1件
あなたの回答
tips
プレビュー