Bootstrap5 ローディングエフェクト

 

 

Bootstrap5 の読み込み効果

この記事では、Bootstrap5 で読み込み効果を実装する方法について説明します。

---

1. Spinner の概要

Spinner は、ページの読み込み中や処理の実行中などに表示される、アニメーションするアイコンです。ユーザーに視覚的なフィードバックを提供し、処理が進行中であることを示します。

Bootstrap5 では、次の 2 種類の Spinner が提供されています。

  • ボーダー型: 回転するボーダーで構成される Spinner です。
  • 塗りつぶし型: 円が拡大縮小を繰り返すことでアニメーションする Spinner です。

2. 基本的な使い方

Spinner を作成するには、<div> 要素に .spinner-border クラスまたは .spinner-grow クラスを適用します。

<div class="spinner-border"></div>
<div class="spinner-grow"></div>

Spinner のサイズを変更するには、.spinner-border-sm.spinner-grow-sm などのサイズ変更ユーティリティクラスを使用します。

<div class="spinner-border spinner-border-sm"></div>
<div class="spinner-grow spinner-grow-sm"></div>

3. 色の変更

Spinner の色を変更するには、テキストカラーユーティリティクラス (.text-*) を使用します。

<div class="spinner-border text-primary"></div>
<div class="spinner-grow text-success"></div>

4. ボタン内の Spinner

ボタン内に Spinner を配置して、読み込み中または処理中であることを示すことができます。

<button class="btn btn-primary" type="button" disabled>
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
  読み込み中...
</button>

5. カスタム Spinner

独自の Spinner 効果を作成するには、カスタム CSS を使用します。animation プロパティを使用して、独自のアニメーションを定義できます。

<style>
.custom-spinner {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 3px solid #ccc;
  border-top-color: #3498db;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
</style>

<div class="custom-spinner"></div>

6. アクセシビリティ

スクリーンリーダーを使用するユーザーのために、Spinner にアクセシビリティを考慮する必要があります。role="status" 属性と aria-hidden="true" 属性を使用することで、スクリーンリーダーが Spinner を正しく解釈できるようにします。

<div class="spinner-border" role="status">
  <span class="visually-hidden">読み込み中...</span>
</div>

参考資料

よくある質問

Q: Spinner の色を変更するにはどうすればよいですか?
A: テキストカラーユーティリティクラス (.text-*) を使用します。たとえば、青色の Spinner にするには、.text-primary クラスを適用します。
Q: ボタン内に Spinner を配置するにはどうすればよいですか?
A: ボタン要素内に Spinner 要素を配置します。Spinner 要素には、role="status" 属性と aria-hidden="true" 属性を必ず設定してください。
Q: 独自の Spinner アニメーションを作成するにはどうすればよいですか?
A: カスタム CSS と animation プロパティを使用します。@keyframes ルールを使用して、独自のアニメーションを定義できます。