טוסטים
שלח הודעות למבקרים שלך עם כוסית, הודעת התראה קלה וניתנת להתאמה אישית בקלות.
טוסטים הם הודעות קלות משקל שנועדו לחקות את הודעות הדחיפה שזכו לפופולריות על ידי מערכות ההפעלה לנייד ולשולחן העבודה. הם בנויים עם flexbox, כך שקל ליישר אותם ולמקם אותם.
סקירה כללית
דברים שכדאי לדעת בעת שימוש בתוסף הטוסט:
- אם אתה בונה את JavaScript שלנו מהמקור, זה דורש
util.js
. - טוסטים ניתנים להצטרפות מסיבות ביצועים, לכן עליך לאתחל אותם בעצמך .
- שימו לב שאתם אחראים על מיקום הטוסט.
- טוסט יסתתר אוטומטית אם לא תציין
autohide: false
.
אפקט האנימציה של רכיב זה תלוי prefers-reduced-motion
בשאילתת המדיה. עיין בסעיף תנועה מופחתת בתיעוד הנגישות שלנו .
דוגמאות
בסיסי
כדי לעודד טוסטים ניתנים להרחבה וצפויים, אנו ממליצים על כותרת וגוף. כותרות טוסט משתמשות ב- display: flex
, המאפשרות יישור קל של תוכן הודות לכלי השירות שלנו לשוליים ול-flexbox.
טוסטים גמישים ככל שאתה צריך ויש להם מעט מאוד סימון נדרש. לכל הפחות, אנו דורשים אלמנט בודד שיכיל את התוכן ה"קלוי" שלך ומעודדים בחום לחצן סגור.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
שָׁקוּף לְמֶחֱצָה
גם טוסטים שקופים מעט, כך שהם משתלבים עם כל מה שהם עשויים להופיע מעל. עבור דפדפנים התומכים backdrop-filter
במאפיין ה-CSS, ננסה גם לטשטש את האלמנטים תחת טוסט.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small class="text-muted">11 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
הַעֲרָמָה
כאשר יש לך מספר טוסטים, אנו כברירת מחדל לערום אותם אנכית בצורה קריאה.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small class="text-muted">just now</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
See? Just like this.
</div>
</div>
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small class="text-muted">2 seconds ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Heads up, toasts will stack automatically
</div>
</div>
מיקום
הנח טוסטים עם CSS מותאם אישית כפי שאתה צריך אותם. הפינה השמאלית העליונה משמשת לעתים קרובות להתראות, וכך גם האמצע העליון. אם אתה מתכוון להציג רק טוסט אחד בכל פעם, הצב את סגנונות המיקום ישירות על ה- .toast
.
<div aria-live="polite" aria-atomic="true" style="position: relative; min-height: 200px;">
<div class="toast" style="position: absolute; top: 0; right: 0;">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
</div>
עבור מערכות שמייצרות יותר התראות, שקול להשתמש ברכיב גלישה כדי שיוכלו להערים בקלות.
<div aria-live="polite" aria-atomic="true" style="position: relative; min-height: 200px;">
<!-- Position it -->
<div style="position: absolute; top: 0; right: 0;">
<!-- Then put toasts within -->
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small class="text-muted">just now</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
See? Just like this.
</div>
</div>
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small class="text-muted">2 seconds ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Heads up, toasts will stack automatically
</div>
</div>
</div>
</div>
אתה יכול גם להיות מפואר עם כלי עזר flexbox ליישור טוסטים אופקית ו/או אנכית.
<!-- Flexbox container for aligning the toasts -->
<div aria-live="polite" aria-atomic="true" class="d-flex justify-content-center align-items-center" style="height: 200px;">
<!-- Then put toasts within -->
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
</div>
נְגִישׁוּת
הטוסטים נועדו להיות הפרעות קטנות למבקרים או למשתמשים שלך, אז כדי לעזור לאלה עם קוראי מסך וטכנולוגיות מסייעות דומות, עליך לעטוף את הטוסט שלך aria-live
באזור . שינויים באזורים חיים (כגון הזרקה/עדכון של רכיב טוסט) מוכרזים אוטומטית על ידי קוראי מסך ללא צורך להזיז את המיקוד של המשתמש או להפריע למשתמש בדרך אחרת. בנוסף, כלול aria-atomic="true"
כדי להבטיח שהטוסט כולו יוכרז תמיד כיחידה אחת (אטומית), במקום להכריז על מה שהשתנה (מה שעלול להוביל לבעיות אם תעדכן רק חלק מתוכן הטוסט, או אם תציג את אותו תוכן טוסט ב- נקודת זמן מאוחרת יותר). אם המידע הדרוש חשוב לתהליך, למשל עבור רשימת שגיאות בטופס, השתמש ברכיב ההתראהבמקום טוסט.
שימו לב שהאזור החי צריך להיות נוכח בסימון לפני יצירת הטוסט או עדכון. אם תיצור את שניהם באופן דינמי בו-זמנית ותזריק אותם לדף, הם בדרך כלל לא יוכרזו על ידי טכנולוגיות מסייעות.
אתה גם צריך להתאים את role
ורמת aria-live
בהתאם לתוכן. אם זו הודעה חשובה כמו שגיאה, השתמש ב- role="alert" aria-live="assertive"
, אחרת השתמש role="status" aria-live="polite"
בתכונות.
ככל שהתוכן שאתה מציג משתנה, הקפד לעדכן את delay
פסק הזמן הקצוב כדי להבטיח שלאנשים יהיה מספיק זמן לקרוא את הטוסט.
<div class="toast" role="alert" aria-live="polite" aria-atomic="true" data-delay="10000">
<div role="alert" aria-live="assertive" aria-atomic="true">...</div>
</div>
בעת שימוש autohide: false
, עליך להוסיף לחצן סגירה כדי לאפשר למשתמשים לבטל את הטוסט.
<div role="alert" aria-live="assertive" aria-atomic="true" class="toast" data-autohide="false">
<div class="toast-header">
<img src="..." class="rounded mr-2" alt="...">
<strong class="mr-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
התנהגות JavaScript
נוֹהָג
אתחול טוסטים באמצעות JavaScript:
$('.toast').toast(option)
אפשרויות
ניתן להעביר אפשרויות באמצעות תכונות נתונים או JavaScript. עבור תכונות נתונים, הוסף את שם האפשרות ל- data-
, כמו ב- data-animation=""
.
שֵׁם | סוּג | בְּרִירַת מֶחדָל | תיאור |
---|---|---|---|
אנימציה | בוליאני | נָכוֹן | החל מעבר דהייה של CSS על הטוסט |
הסתר אוטומטי | בוליאני | נָכוֹן | הסתר אוטומטית את הטוסט |
לְעַכֵּב | מספר | 500 |
עיכוב הסתרת הטוסט (ms) |
שיטות
שיטות ומעברים אסינכרוניים
כל שיטות ה-API הן אסינכרוניות ומתחילות מעבר . הם חוזרים למתקשר ברגע שהמעבר מתחיל אבל לפני שהוא מסתיים . בנוסף, תתעלם מקריאת שיטה על רכיב מעבר .
$().toast(options)
מצרף מטפל טוסט לאוסף אלמנטים.
.toast('show')
חושף טוסט של אלמנט. חוזר אל המתקשר לפני שהטוסט הוצג בפועל (כלומר לפני shown.bs.toast
התרחשות האירוע). אתה צריך לקרוא ידנית לשיטה זו, במקום זאת הטוסט שלך לא יוצג.
$('#element').toast('show')
.toast('hide')
מסתיר טוסט של אלמנט. חוזר אל המתקשר לפני שהטוסט הוסתר בפועל (כלומר לפני hidden.bs.toast
התרחשות האירוע). אתה צריך לקרוא ידנית לשיטה זו אם עשית autohide
ל false
.
$('#element').toast('hide')
.toast('dispose')
מסתיר טוסט של אלמנט. הטוסט שלך יישאר ב-DOM אבל לא יופיע יותר.
$('#element').toast('dispose')
אירועים
סוג אירוע | תיאור |
---|---|
show.bs.טוסט | אירוע זה מופעל מיד כאשר show שיטת המופע נקראת. |
טוסט.bs.show | אירוע זה מופעל כאשר הטוסט נעשה גלוי למשתמש. |
hide.bs.טוסט | אירוע זה מופעל מיד כאשר hide שיטת המופע נקראה. |
טוסט מוסתר.bs | אירוע זה מופעל כאשר הטוסט סיים להסתיר מהמשתמש. |
$('#myToast').on('hidden.bs.toast', function () {
// do something...
})