Bootstrap 5 メッセージトースト
この記事では、Bootstrap 5 のトーストメッセージコンポーネントの使用方法について説明します。これには、トーストの作成、表示、非表示、構成、カスタマイズの方法が含まれます。
1. トーストの概要
トーストは、ユーザーに短い情報を表示するための軽量で非侵入型の通知コンポーネントです。
2. トーストの作成
事前定義されたHTML構造を使用してトーストを作成します。これには、外部コンテナ、ヘッダー、本文、閉じるボタンなどのパーツが含まれます。トーストのスタイルと機能を確保するには、必要なCSSクラスを使用します。
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<strong class="me-auto">トーストのタイトル</strong>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
トーストの本文が表示されます。
</div>
</div>
3. トーストの表示
JavaScriptを使用してトーストインスタンスを初期化します。トーストを表示するには、`show()`メソッドを呼び出します。
<script>
var toastElList = [].slice.call(document.querySelectorAll('.toast'))
var toastList = toastElList.map(function (toastEl) {
return new bootstrap.Toast(toastEl)
})
toastList[0].show()
</script>
4. トーストの非表示
トーストは自動的に非表示にすることも、閉じるボタンをクリックするか、`hide()`メソッドを呼び出して手動で非表示にすることもできます。
<script>
var myToast = bootstrap.Toast.getInstance(document.getElementById('myToast'))
myToast.hide()
</script>
5. 設定オプション
JavaScriptオプションを使用して、トーストの動作をカスタマイズできます。例:
オプション | 説明 |
---|---|
animation |
アニメーション効果を有効にするかどうか。 |
autohide |
自動的に非表示にするかどうか。 |
delay |
自動的に非表示にするまでの遅延時間(ミリ秒)。 |
<script>
var myToast = new bootstrap.Toast(document.getElementById('myToast'), {
animation: true,
autohide: true,
delay: 5000
})
</script>
6. スタイルのカスタマイズ
カスタムCSSクラスを使用するか、デフォルトのスタイルを変更して、トーストの外観を変更できます。
<style>
.my-toast {
background-color: #f0f0f0;
}
</style>
7. 例とコード
以下は、トーストを作成、表示、非表示、カスタマイズする方法を示すコード例です。
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true" id="myToast">
<div class="toast-header">
<strong class="me-auto">トーストのタイトル</strong>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
トーストの本文が表示されます。
</div>
</div>
<script>
var myToast = new bootstrap.Toast(document.getElementById('myToast'), {
animation: true,
autohide: true,
delay: 5000
})
myToast.show()
</script>
関連リソース
Q&A
Q1: トーストを複数のページで使い回すにはどうすればよいですか?
A1: トーストのHTML構造を別ファイルに定義し、必要なページにインクルードします。JavaScriptの初期化コードも各ページに追加する必要があります。
Q2: トーストを画面の中央に配置するにはどうすればよいですか?
A2: カスタムCSSを使用して、トーストの親要素をposition: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); で配置します。
Q3: トーストの表示時間を変更するにはどうすればよいですか?
A3: JavaScriptのオプションで`delay`の値を変更します。値はミリ秒単位です。