Snackbarスナックバー
スナックバーコンポーネントは、ページ上で簡潔なアプリケーションプロセスの情報を表示するために使用します。
このコンポーネントを直接使用する以外に、mdui は mdui.snackbar 関数も提供しており、Snackbar コンポーネントの使用を簡単にできます。
コンポーネントを必要に応じてインポートします:
import 'mdui/components/snackbar.js';
コンポーネントの TypeScript 型を必要に応じてインポートします:
import type { Snackbar } from 'mdui/components/snackbar.js';
使用例:
Photo archived
Snackbar を開く
<mdui-snackbar class="example-snackbar">Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-snackbar");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
placement 属性を使用して、Snackbar の表示位置を設定できます。
Photo archived
top-start
Photo archived
top
Photo archived
top-end
Photo archived
bottom-start
Photo archived
bottom
Photo archived
bottom-end
<div class="example-placement">
<div class="row">
<mdui-snackbar placement="top-start">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">top-start</mdui-button>
<mdui-snackbar placement="top">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">top</mdui-button>
<mdui-snackbar placement="top-end">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">top-end</mdui-button>
</div>
<div class="row">
<mdui-snackbar placement="bottom-start">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">bottom-start</mdui-button>
<mdui-snackbar placement="bottom">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">bottom</mdui-button>
<mdui-snackbar placement="bottom-end">Photo archived</mdui-snackbar>
<mdui-button variant="outlined">bottom-end</mdui-button>
</div>
</div>
<script>
const snackbars = document.querySelectorAll(".example-placement mdui-snackbar");
snackbars.forEach((snackbar) => {
const button = snackbar.nextElementSibling;
button.addEventListener("click", () => snackbar.open = true);
});
</script>
<style>
.example-placement mdui-button {
margin: 0.25rem;
width: 7.5rem;
}
</style>
ソース
action 属性を使用すると、Snackbar の右側にアクションボタンを追加できます。この属性でボタンのテキストを指定します。アクションボタンをクリックすると action-click イベントが発生します。アクションボタンをローディング状態で表示したい場合は、action-loading 属性を追加します。
Photo archived
Snackbar を開く
<mdui-snackbar action="Undo" class="example-action">Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-action");
const openButton = snackbar.nextElementSibling;
snackbar.addEventListener("action-click", () => {
snackbar.actionLoading = true;
setTimeout(() => snackbar.actionLoading = false, 2000);
});
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソースaction スロットを使用して、Snackbar の右側にカスタム要素を追加することもできます。
Photo archived
Undo
Snackbar を開く
<mdui-snackbar class="example-action-slot">
Photo archived
<mdui-button slot="action" variant="text">Undo</mdui-button>
</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-action-slot");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソース
closeable 属性を追加すると、Snackbar の右側に閉じるボタンが表示されます。このボタンをクリックすると Snackbar が閉じ、close イベントが発生します。
Photo archived
Snackbar を開く
<mdui-snackbar closeable class="example-closeable">Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-closeable");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソースclose-button スロットを使用して、閉じるボタンの要素をカスタマイズできます。
Photo archived
Snackbar を開く
<mdui-snackbar closeable class="example-close-button-slot">
Photo archived
<mdui-avatar slot="close-button" icon="people_alt"></mdui-avatar>
</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-close-button-slot");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソースclose-icon 属性を設定することで、デフォルトの閉じるボタン内の Material Icons アイコンを変更できます。close-icon スロットを使用して閉じるボタン内のアイコン要素をカスタマイズすることもできます。
Photo archived
Snackbar を開く
<mdui-snackbar
closeable
close-icon="delete"
class="example-close-icon"
>Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-close-icon");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソース
デフォルトでは、メッセージテキストに行数制限はありません。message-line 属性を使用してテキスト行数を制限できます。最大 2 行まで設定できます。
The item already has the label "travel". You can add a new label. You can add a new label.
Snackbar を開く
<mdui-snackbar message-line="1" class="example-line">The item already has the label "travel". You can add a new label. You can add a new label.</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-line");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソース
auto-close-delay 属性を使用して、自動的に閉じるまでの遅延時間をミリ秒単位で設定できます。デフォルト値は 5000 ミリ秒です。
Photo archived
Snackbar を開く
<mdui-snackbar auto-close-delay="2000" class="example-close-delay">Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-close-delay");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソース
close-on-outside-click 属性を追加すると、Snackbar の外部領域をクリックした時に Snackbar を閉じるように設定できます。
Photo archived
Snackbar を開く
<mdui-snackbar close-on-outside-click class="example-outside">Photo archived</mdui-snackbar>
<mdui-button>Snackbar を開く</mdui-button>
<script>
const snackbar = document.querySelector(".example-outside");
const openButton = snackbar.nextElementSibling;
openButton.addEventListener("click", () => snackbar.open = true);
</script>
ソース| 名前 |
|---|
open |
スナックバーが表示を開始したときに発生するイベントです。event.preventDefault() を呼び出すことで、スナックバーの表示を防ぐことができます。
|
opened |
スナックバーの表示アニメーションが完了したときに発生するイベントです。
|
close |
スナックバーが非表示を開始したときに発生するイベントです。event.preventDefault() を呼び出すことで、スナックバーが閉じるのを防ぐことができます。
|
closed |
スナックバーの非表示アニメーションが完了したときに発生するイベントです。
|
action-click |
操作ボタンがクリックされたときに発生します。
|