in English

טוסטים

שלח הודעות למבקרים שלך עם כוסית, הודעת התראה קלה וניתנת להתאמה אישית בקלות.

טוסטים הם הודעות קלות משקל שנועדו לחקות את הודעות הדחיפה שזכו לפופולריות על ידי מערכות ההפעלה לנייד ולשולחן העבודה. הם בנויים עם 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">&times;</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">&times;</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">&times;</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">&times;</span>
    </button>
  </div>
  <div class="toast-body">
    Heads up, toasts will stack automatically
  </div>
</div>

מיקום

הנח טוסטים עם CSS מותאם אישית כפי שאתה צריך אותם. הפינה השמאלית העליונה משמשת לעתים קרובות להתראות, וכך גם האמצע העליון. אם אתה מתכוון להציג רק טוסט אחד בכל פעם, הצב את סגנונות המיקום ישירות על ה- .toast.

אתחול לפני 11 דקות
שלום עולם! זו הודעת טוסט.
<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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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 הן אסינכרוניות ומתחילות מעבר . הם חוזרים למתקשר ברגע שהמעבר מתחיל אבל לפני שהוא מסתיים . בנוסף, תתעלם מקריאת שיטה על רכיב מעבר .

עיין בתיעוד JavaScript שלנו למידע נוסף .

$().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...
})