スクロールに合わせて切り替わる・進む・留まる動きを18種類の型に分け、AIへの指示文・スクロールして試せる見本・コードを載せています。見本の中をスクロールすると動きを確かめられ、下のつまみや選択肢を変えると、指示文とコードの値も同じものに変わります。
スクロールの動きはどの型を選ぶか
スクロールの動きは、読む人が自分の手で動かす動きです。時間で勝手に動く登場の動きとちがい、止めれば止まり、戻せば戻ります。そのぶん、操作の感触を変えてしまう型(画面に長く留める・スクロールを乗っ取る)は、読む人を待たせたり迷わせたりしやすくなります。まず「位置で1回切り替えるのか、量に合わせて進めるのか、画面に留めるのか」を決め、留める型は長さを控えめにします。
| こんなとき | 向いている型 |
|---|---|
| 章ごとに雰囲気を変えたい | ある位置を過ぎたら切り替わる |
| 長い記事やマニュアルで、いまの位置を見せたい | 目次の、いま読んでいる位置が光る・読んだ量を示すバー |
| 制作の流れ・沿革を読み進めてほしい | スクロールした量に合わせて進む |
| 短いメッセージを1行ずつ届けたい | 読み進めると文字が濃くなる |
| スクロールの量ではなく、画面に入ったときに文字を動かしたい | 1文字ずつ順番に出る・マーカーが引かれるなど(文字の動き) |
| 写真に奥行きを出したい | 奥と手前で動く速さが変わる・写真が近づいて広がる |
| 製品をスクロールで回して見せたい・マウスに合わせて奥行きを出したい | 連番の絵がコマ送りで進む(画像シーケンス)・マウスパララックス(画像の動き) |
| 見出しを見せたまま、説明を読ませたい | 片側は留めて、もう片側が流れる |
| 手順や考え方を1つずつ見せたい | カードが上に重なっていく・画面に留めたまま、中身が入れ替わる |
| 作品や事例を横に並べて見せたい | 縦のスクロールで横に進む・1枚ずつぴたっと止まる |
| 1枚のページの中をメニューで移動させたい | ページ内のリンクで、なめらかに移動する |
| 写真の一覧に遊びを足したい | 速くスクロールすると傾く |
どの型でも守ること
- scroll イベントで位置を計算しない。位置で切り替える型は IntersectionObserver、量に合わせる型は CSS の
animation-timelineで作ります。スクロールのたびに計算が走ると、スクロールがかくつきます。 - 使えないブラウザでも読める形にする。
animation-timelineは@supportsで囲み、使えないブラウザ(2026年10月時点の Firefox)では、動かずに中身が読める形にします。 - 動きを控える設定の人には、視差や拡大を動かさない。画面に留めて入れ替える型は、留めずに縦に並べます。読む人が自分で動かすだけの型(sticky・snap)はそのままで構いません。
- スクロールを乗っ取らない。ページ全体に慣性を付けるライブラリや、ホイールの量を変える仕組みは、読む人の操作感を変えてしまいます。
- 画面に留める長さは、画面3枚分くらいまでにする。それより長いと、スクロールしても先へ進まないと感じさせます。
よくある質問 (FAQ)
@supports (animation-timeline: view())(読んだ量を示すバーは scroll())の中に書いています。画面に留める型は、使えないブラウザでは留めずに縦に並べたり、ふつうの横スクロールにしたりして、中身を読めるようにしています。読んだ量を示すバーは、0 のまま残さず、バーごと出しません。