カテゴリ: Bootstrap 更新日: 2026/08/18

Bootstrap5でボタンにローディングスピナーを表示する方法を徹底解説 初心者向けガイド

ローディング中の表現:スピナー(.spinner-border)をボタン内に
ローディング中の表現:スピナー(.spinner-border)をボタン内に

先生と生徒の会話形式で理解しよう

生徒

「Bootstrapでボタンを押したときに、読み込み中って表示することはできますか?」

先生

「できますよ。Bootstrap5にはスピナーという便利な機能があります。」

生徒

「スピナーって何ですか?」

先生

「くるくる回る読み込みマークのことです。ボタンの中に入れてローディング中を表現できます。」

1. Bootstrapのスピナーとは何かをやさしく解説

1. Bootstrapのスピナーとは何かをやさしく解説
1. Bootstrapのスピナーとは何かをやさしく解説

Bootstrapとは、見た目を整えるためのデザイン用の仕組みです。ホームページやWebアプリ開発でよく使われています。特にBootstrap5は、ボタンやフォーム、ナビゲーションなどを簡単に作ることができる便利なツールです。

スピナーとは、読み込み中を表す回転する表示のことです。例えば、エレベーターを待っているときに上の階から下の階へ動く表示が出ます。それと同じように、処理が終わるまで待っていることをユーザーに伝える役割があります。

Web制作やフロントエンド開発では、ローディング表示を入れることで、ユーザー体験が大きく向上します。Bootstrapでは.spinner-borderというクラスを使うだけで簡単に実装できます。

2. ボタンの中にスピナーを表示する基本コード

2. ボタンの中にスピナーを表示する基本コード
2. ボタンの中にスピナーを表示する基本コード

まずは一番シンプルな例を見てみましょう。ボタンの中にスピナーを入れるだけで、ローディング中の表現ができます。HTMLは難しそうに見えますが、決まった形を覚えるだけで大丈夫です。


<button class="btn btn-primary" type="button" disabled>
    <span class="spinner-border spinner-border-sm" role="status"></span>
    読み込み中
</button>
ブラウザ表示

btnはボタンの見た目を整えるクラスです。btn-primaryは青色のボタンになります。disabledはクリックできない状態にするための指定です。

spinner-borderは回転する丸いスピナーを表示するためのクラスです。spinner-border-smと書くことで、小さいサイズになります。

3. スピナーと文字を横並びにきれいに配置する方法

3. スピナーと文字を横並びにきれいに配置する方法
3. スピナーと文字を横並びにきれいに配置する方法

スピナーと文字の間に少し余白を入れると、見た目がきれいになります。余白とは、文字と文字の間のすきまのことです。Bootstrapでは簡単に余白を調整できます。


<button class="btn btn-success" type="button" disabled>
    <span class="spinner-border spinner-border-sm me-2" role="status"></span>
    データ送信中
</button>
ブラウザ表示

me-2というのは、右側に少し余白をつける指定です。難しく考えなくても、数字が大きいほど余白が広くなると覚えておけば大丈夫です。

このようにすることで、Bootstrapボタンとローディングスピナーが自然に表示されます。

4. クリック後にスピナーを表示する仕組み

4. クリック後にスピナーを表示する仕組み
4. クリック後にスピナーを表示する仕組み

実際のWebアプリ開発では、ボタンを押したあとにローディング表示を出したいことが多いです。その場合は少しだけJavaScriptを使います。JavaScriptとは、動きをつけるための言語です。


<button id="sendBtn" class="btn btn-danger" type="button">
    送信する
</button>

<script>
document.getElementById("sendBtn").addEventListener("click", function() {
    this.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>送信中';
    this.disabled = true;
});
</script>
ブラウザ表示

addEventListenerは、クリックされたときの動きを決める命令です。innerHTMLはボタンの中身を書き換えるという意味です。

これでボタンを押すと、自動的にスピナー付きの表示に変わります。

5. ボタングループでローディングを表現する方法

5. ボタングループでローディングを表現する方法
5. ボタングループでローディングを表現する方法

ボタングループとは、複数のボタンを横に並べる機能です。検索ボタンや切り替えボタンなどでよく使われます。Bootstrapではbtn-groupというクラスを使います。


<div class="btn-group" role="group">
    <button class="btn btn-outline-primary">通常</button>
    <button class="btn btn-outline-primary" disabled>
        <span class="spinner-border spinner-border-sm me-2"></span>
        処理中
    </button>
</div>
ブラウザ表示

このようにボタングループの中の一つだけをローディング状態にすることもできます。管理画面やダッシュボード画面のUI設計でよく使われるテクニックです。

6. スピナーの色やサイズを変更する方法

6. スピナーの色やサイズを変更する方法
6. スピナーの色やサイズを変更する方法

Bootstrap5では、色やサイズも簡単に変更できます。色はtextクラスを使います。例えばtext-lightは白色です。


<button class="btn btn-dark" type="button" disabled>
    <span class="spinner-border spinner-border-sm text-light me-2"></span>
    ローディング中
</button>
ブラウザ表示

背景が黒いボタンの場合は、スピナーを白色にすると見やすくなります。このようにデザインとユーザー体験を意識することが、Web制作ではとても大切です。

7. ローディング表示を使うメリットと注意点

7. ローディング表示を使うメリットと注意点
7. ローディング表示を使うメリットと注意点

ローディングスピナーをボタン内に表示することで、ユーザーは今処理が進んでいると理解できます。何も表示がないと、壊れているのではないかと不安になります。

特にフォーム送信やデータ保存、API通信など時間がかかる処理では、Bootstrapスピナーを活用することが重要です。

ただし、ずっと回り続ける状態にならないように注意が必要です。処理が終わったら、必ず元のボタン表示に戻す設計にしましょう。

Bootstrap5のボタンとスピナーを組み合わせることで、初心者でも簡単にローディング中の表現を実装できます。HTMLと少しのJavaScriptだけで、実践的なWebアプリ開発が可能になります。

まとめ

まとめ
まとめ

今回はBootstrap5でボタンにローディングスピナーを表示する方法について、基礎から応用まで順番に解説しました。Bootstrap5はフロントエンド開発やWeb制作、Webアプリ開発において非常に人気のあるフレームワークです。その中でもspinner-borderを使ったローディングスピナーの実装は、ユーザー体験を向上させるために欠かせないテクニックです。 ボタンにローディング表示を組み込むことで、フォーム送信中やデータ保存中、非同期通信中であることをユーザーに明確に伝えることができます。特にAPI通信やデータベース登録処理など、時間がかかる処理ではローディング表示がないと不安を与えてしまいます。Bootstrapのbtnクラスやbtn-primary、btn-success、btn-dangerなどの装飾クラスと組み合わせることで、視認性の高いローディングボタンを簡単に作ることができます。 また、spinner-border-smを使えば小さいスピナーを表示でき、me-2を使えば余白を整えることができます。このようなユーティリティクラスを活用することが、Bootstrap5を使いこなす上で重要なポイントです。さらにJavaScriptのaddEventListenerやinnerHTMLを書き換える仕組みを理解することで、クリック後に動的にローディング状態へ切り替える実装も可能になります。 WebデザインやUI設計では、見た目の美しさだけでなく、操作に対する反応の分かりやすさが求められます。ローディングスピナーはその代表的な改善方法です。ボタンをdisabledにして二重送信を防止することも、実務では重要なポイントです。 Bootstrap5のボタンデザイン、スピナー表示、JavaScriptによる動的制御を組み合わせれば、初心者でも実践的なフロントエンド実装ができます。今回学んだ内容を活かして、問い合わせフォーム、ログイン画面、データ登録画面など、さまざまな場面でローディングボタンを活用してみてください。

サンプルプログラムの振り返り


<button id="loadingBtn" class="btn btn-primary" type="button">
    送信開始
</button>

<script>
document.getElementById("loadingBtn").addEventListener("click", function() {
    this.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>処理中';
    this.disabled = true;

    setTimeout(() => {
        this.innerHTML = '完了';
        this.disabled = false;
    }, 3000);
});
</script>
ブラウザ表示

上記のサンプルでは、クリック後にローディングスピナーを表示し、三秒後に完了表示へ戻す仕組みを実装しています。実際のWebアプリケーションでは、非同期通信の完了時に元へ戻すように設計します。Bootstrap5とJavaScriptを組み合わせることで、ユーザーに分かりやすい動きのあるボタンを作ることができます。

先生と生徒の振り返り会話

生徒

ボタンにローディングスピナーを表示することで、処理中であることを分かりやすく伝えられると理解できました。

先生

その通りです。Bootstrap5のspinner-borderを使えば、初心者でも簡単にローディング表示を実装できます。

生徒

disabledを設定することで二重送信を防げる点も重要ですね。実際のフォーム送信でも使えそうです。

先生

はい。フロントエンド開発ではユーザー体験の向上が大切です。ローディングボタンは小さな工夫ですが、操作性を大きく改善します。

生徒

BootstrapのクラスやJavaScriptの基本も復習できました。これから問い合わせフォームやログイン画面にも応用してみます。

先生

ぜひ挑戦してください。Bootstrap5のボタンデザインとスピナー機能を活用すれば、実務でも通用するWebアプリ開発ができます。

2026年最新 スキルアップ・実践セミナー

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

「スピード」が武器になる。Bootstrap 5で商用クオリティのWebサイトを高速構築。

本講座では、世界シェアNo.1のフレームワークBootstrap 5を使いこなし、ゼロからレスポンシブサイトを組み上げる「現場最速のワークフロー」を学びます。単なる導入に留まらず、ユーティリティクラスを活用した効率化と、実務で必須となるカスタマイズ技法を60分で完全習得します。

具体的なワークショップ内容と環境

【つくるもの】
モダンなランディングページ(LP)やダッシュボードのプロトタイプを作成します。ナビゲーション、ヒーローセクション、カードレイアウト、フッターなど、Bootstrapのコンポーネントを組み合わせて「一瞬で形にする」感動を体験してください。

【開発環境】
VS CodeにBootstrap 5専用のSnippet(補完機能)を導入し、手入力を最小限にする環境を構築。最新のCDN利用法や、表示速度(Core Web Vitals)を意識した最適な読み込み設定など、プロの初期設定を伝授します。

この60分で得られる3つの革新スキル

1. グリッドシステムの完全マスター

スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。

2. ユーティリティクラスによる爆速デザイン

CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。

3. 脱・標準デザインのカスタマイズ

「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。

※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

Bootstrap 5を楽しみながら、一緒に学びましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
CSS
CSSでdisplayの違いを図解で理解!block・inline・inline-blockの使い方
New2
CSS
CSSのwidthとheightの基本!初心者でもわかる単位の使い分け
New3
CSS
z-indexによるバグを防ぐためのデバッグ方法完全ガイド!初心者向け解決テクニック
New4
HTML
HTML data-*属性とJavaScript連携を完全解説!datasetでカスタムデータを取得する方法
人気記事
No.1
Java&Spring記事人気No1
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.2
Java&Spring記事人気No2
HTML
HTML formのaction URL設計を完全解説|送信先の考え方を初心者でも理解
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
レイヤー管理に便利なCSS変数とSCSS変数の活用法完全ガイド!初心者向け解説
No.5
Java&Spring記事人気No5
HTML
HTMLのformタグの書き方を完全ガイド!actionとmethod属性の意味を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrapで学ぶレスポンシブな並び方向の使い方完全ガイド!flex-rowとflex-columnを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
HTML
HTML input type="email"の入力チェック仕様と注意点を徹底解説 初心者向け完全ガイド