ユーザー操作
scroll-behavior
scroll-behavior は、ページ内リンクや JavaScript でスクロールさせたときに、すぐに移るか、なめらかに動かすかを指定します。smooth にすると、目的の位置までなめらかにスクロールします。
構文
auto | smoothプレビュー
123
プリセット
右下の角をドラッグするとサイズを変えられます
コード
.box {
overflow: auto;
scroll-behavior: smooth;
}コントロール
scroll-behaviorsmooth
123
解説
値の意味
auto:初期値です。すぐに目的の位置へ移ります。smooth:少し時間をかけて、なめらかにスクロールします。かかる時間や動き方はブラウザが決めます。
プレビューは、3 枚の札を縦に積んでスクロールする箱(補助の overflow: auto)に書いています。下の番号のボタンを押すと、JavaScript の scrollTo でその札の上端までスクロールします。smooth ではなめらかに動き、auto ではすぐに切り替わります。
よく使う場面
目次や「ページの先頭へ」のようなページ内リンクで、どこへ移ったのかがわかるように、なめらかにスクロールさせたいときに使います。
気をつけること
- マウスのホイールやスクロールバーなど、利用者が自分でスクロールするときの動きは変わりません。効くのは、ページ内リンクで移るときや、
scrollTo・scrollIntoViewなどの JavaScript でスクロールさせるときです。 - ページ全体のスクロールに効かせるには
htmlに書きます。bodyに書いても、ページ全体のスクロールには効きません。 - JavaScript で
scrollTo({ top: 0, behavior: 'instant' })のようにbehaviorを書くと、そちらが優先されます。 - 画面の動きで気分が悪くなる人もいます。OS で動きを減らす設定にしている人にはなめらかなスクロールをしないように、
@media (prefers-reduced-motion: no-preference)の中でsmoothにする書き方がよく使われます。