CSSのみでスクロールした際に進捗率のプログレスバーを実装する方法

著者:
投稿日:

今回はCSSのみで画面をスクロールした際にプログレスバーを実装する方法をまとめました。

わりかし簡単なので応用もしやすいかと思います。


実は「プログレスバー」を実装するとユーザーの集中力下がるんじゃないかなってずっと考えていたのですが、用途によってはアリだなと考えが変わってきました。Basicにも取り入れるかもしれませんので忘備録としてもこの記事を書いていきます。

目次
  1. CSSのみでスクロールした際に進捗率のプログレスバーを実装する方法-デモ画面
  2. CSSのみプログレスバー実装方法
    1. CSS
    2. HTML

CSSのみでスクロールした際に進捗率のプログレスバーを実装する方法-デモ画面

CSSのみでスクロールした際に進捗率のプログレスバーを実装する方法-デモ画面

「プログレスバー」ってどんなの?って方もいらっしゃると思いますのでまずはデモ画面を用意いたしました。スクロールすると画面上部左から右にプログレスバーが伸びていきます。一番下までスクロールすると全て右まで伸びます。また上に戻るとプログレスバーも左に減っていきます。

CSSのみプログレスバー実装方法

かなりシンプルです。CSSをちょこっと書いて、HTMLは1行で完成です。

CSS

.progress {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 2px;
  background-color: #3f434f;
  transform-origin: 0 0;
  animation-name: progress;
  animation-timing-function: linear;
  animation-timeline: scroll(root);
}
@keyframes progress {
  0% {
    scale: 0 1 1;
  }
  100% {
    scale: 1 1 1;
  }
}

HTML

<div class="progress"></div>

これだけでスクロールした際にプログレスバーが表示されます。


CMSの悩みはBasicで一気に解決しましょう
  1. 完全無料
    Basicはオープンソースで運営されています。誰しもが自由にBasicを利用できます。
  2. 超軽量化で超高速配信
    通常のCMSよりページ容量を70%以上を自動で圧縮を行い更に自動で静的化・圧縮化されたページが配信されます。
  3. SEOにつよつよ
    70%以上軽量化に加えて最新SEOに対応した構造で静的化・圧縮化されたページはライバルサイトより圧倒的に評価されます
  4. ライバルサイトより一歩前にいけるCMSでサイトを構築しませんか?

    →より詳しく

著者プロフィール
松岡宗谷

Basic https://basic.dance/ を運営しています。スペースナビ 代表取締役。スタートアップ界隈でCTO→Sharetube創業→スペースナビ創業→UXSEOリリース、ResizeCDNリリース、あまてむリリース。世界で最もSEOに効くCMS Basicリリース。個人の夢は完全義体化。会社の夢は宇宙事業。プログラマーは死ぬまで現役でありたい