正しくsvelteを使用してスムーズなスクロールを実装した後、実は1行のCSSで達成できることに気づきました:
html {
scroll-behavior: smooth;
}
ブラウザのサポートに気を付ける必要があるかもしれませんが、開発者がライブラリを導入する必要も自分で実装する手間も完全に省くことができます。
smooth-scroll
を完璧に実現し、ハッシュの変更や状態の変更を書き換える必要はありません。後日、CSSを使用せずにスムーズなスクロールを実現する方法について記事を書きます。