ページスクロール進捗バー(v2)
ページを下にスクロールするほど上部の細いバーが伸びていき、読み進めた割合を視覚化するインジケーターです。計算は単純で、JavaScript の scroll イベントで現在のスクロール量を、ページ全体の高さから画面の高さを引いた値で割り、百分率にしてバーの width に反映しています。
解説
ページを下にスクロールするほど上部の細いバーが伸びていき、読み進めた割合を視覚化するインジケーターです。計算は単純で、JavaScript の scroll イベントで現在のスクロール量を、ページ全体の高さから画面の高さを引いた値で割り、百分率にしてバーの width に反映しています。バーは position:sticky で常に画面の上端に留まります。
長文の記事、利用規約、ドキュメント、ストーリー性のあるランディングページなど、読了率を意識させたいページで読者の離脱を防ぐ助けになります。残りの分量が見えることで、最後まで読むモチベーションにつながります。
実装上の注意
- スクロール監視には
passive:trueを付けており、スクロールの滑らかさを損ないません。 - バーの色は
linear-gradientでブランドカラーに合わせて変えられます。 - 動きを抑えたい利用者のために、
prefers-reduced-motionでtransitionを無効化する配慮を加えると親切です。
使用例・適したシーン
- LP の演出強化
- 記事の読了率向上
- ストーリーテリング表現
よくある質問
バーの色や太さは変えられますか。
変えられます。色はバーのlinear-gradientの値、太さはheightの数値で調整します。ブランドカラーに合わせると一体感が出ます。
重いライブラリは必要ですか。
不要です。scrollイベントで割合を計算し幅へ反映するだけの数行で動くため、外部ライブラリを読み込まずに導入できます。