Mga toast
Push notification sa iyong mga bisita gamit ang isang toast, isang magaan at madaling nako-customize na mensahe ng alerto.
Ang mga toast ay mga magaan na notification na idinisenyo upang gayahin ang mga push notification na pinasikat ng mga operating system ng mobile at desktop. Binuo ang mga ito gamit ang flexbox, kaya madaling ihanay at iposisyon ang mga ito.
Pangkalahatang-ideya
Mga bagay na dapat malaman kapag gumagamit ng toast plugin:
- Kung binubuo mo ang aming JavaScript mula sa pinagmulan, nangangailangan
util.js
ito ng . - Ang mga toast ay nag-opt-in para sa mga kadahilanan ng pagganap, kaya dapat mong simulan ang mga ito sa iyong sarili .
- Pakitandaan na responsable ka sa pagpoposisyon ng mga toast.
- Awtomatikong itatago ang mga toast kung hindi mo tinukoy
autohide: false
.
prefers-reduced-motion
query ng media. Tingnan ang
seksyon ng pinababang paggalaw ng aming dokumentasyon ng pagiging naa-access .
Mga halimbawa
Basic
Para hikayatin ang mga extensible at predictable toast, inirerekomenda namin ang isang header at body. Gumagamit ang mga header ng toast display: flex
, na nagbibigay-daan sa madaling pag-align ng nilalaman salamat sa aming mga margin at flexbox utilities.
Ang mga toast ay nababaluktot gaya ng kailangan mo at may napakakaunting kinakailangang markup. Hindi bababa sa, kailangan namin ng isang elemento upang maglaman ng iyong "toasted" na nilalaman at mahigpit na hinihikayat ang isang pindutan na i-dismiss.
<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>
Mabuhay
I-click ang button sa ibaba para magpakita ng toast (nakaposisyon kasama ng aming mga utility sa kanang sulok sa ibaba) na nakatago bilang default gamit ang .hide
.
<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
<div class="position-fixed bottom-0 right-0 p-3" style="z-index: 5; right: 0; bottom: 0;">
<div id="liveToast" class="toast hide" role="alert" aria-live="assertive" aria-atomic="true" data-delay="2000">
<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>
Translucent
Ang mga toast ay bahagyang translucent upang ihalo sa kung ano ang nasa ibaba nito.
<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>
Nakasalansan
Kapag mayroon kang maramihang mga toast, ang default namin ay patayong pagsasalansan ng mga ito sa isang nababasang paraan.
<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>
Paglalagay
Maglagay ng mga toast gamit ang custom na CSS kung kailangan mo ang mga ito. Ang kanang itaas ay kadalasang ginagamit para sa mga notification, gayundin ang itaas na gitna. Kung magpapakita ka lang ng isang toast sa isang pagkakataon, ilagay ang mga istilo ng pagpoposisyon sa kanan .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>
Para sa mga system na bumubuo ng higit pang mga notification, isaalang-alang ang paggamit ng isang elemento ng pambalot upang madali silang mag-stack.
<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>
Maaari ka ring magpahanga sa mga utility ng flexbox upang ihanay ang mga toast nang pahalang at/o patayo.
<!-- 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>
Accessibility
Ang mga toast ay nilayon na maging maliliit na abala sa iyong mga bisita o user, kaya para matulungan ang mga may screen reader at katulad na mga pantulong na teknolohiya, dapat mong ibalot ang iyong mga toast sa isang aria-live
rehiyon . Ang mga pagbabago sa mga live na rehiyon (tulad ng pag-iniksyon/pag-update ng bahagi ng toast) ay awtomatikong inanunsyo ng mga screen reader nang hindi kailangang ilipat ang focus ng user o kung hindi man ay matakpan ang user. Bukod pa rito, isama aria-atomic="true"
upang matiyak na ang buong toast ay palaging inaanunsyo bilang isang unit (atomic), sa halip na ipahayag lamang kung ano ang nabago (na maaaring humantong sa mga problema kung i-update mo lamang ang bahagi ng nilalaman ng toast, o kung ipinapakita ang parehong nilalaman ng toast sa ibang pagkakataon). Kung ang impormasyong kailangan ay mahalaga para sa proseso, hal para sa isang listahan ng mga error sa isang form, pagkatapos ay gamitin ang alertong bahagisa halip na toast.
Tandaan na ang live na rehiyon ay kailangang naroroon sa markup bago mabuo o ma-update ang toast. Kung dynamic mong bubuo ang pareho sa parehong oras at i-inject ang mga ito sa page, sa pangkalahatan ay hindi ito iaanunsyo ng mga pantulong na teknolohiya.
Kailangan mo ring iakma ang role
at aria-live
antas depende sa nilalaman. Kung ito ay isang mahalagang mensahe tulad ng isang error, gamitin ang role="alert" aria-live="assertive"
, kung hindi man ay gumamit ng mga role="status" aria-live="polite"
katangian.
Habang nagbabago ang content na ipinapakita mo, tiyaking i-update ang delay
timeout para magkaroon ng sapat na oras ang mga user para basahin ang toast.
<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>
Kapag ginagamit autohide: false
ang , dapat kang magdagdag ng close button upang payagan ang mga user na i-dismiss ang toast.
<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>
Bagama't teknikal na posibleng magdagdag ng mga natutuon/naaaksyunan na kontrol (tulad ng mga karagdagang button o link) sa iyong toast, dapat mong iwasang gawin ito para sa pag-autohid ng mga toast. Kahit na bigyan mo ng mahabang delay
timeout ang toast , maaaring mahirapan ang mga gumagamit ng keyboard at assistive na teknolohiya na abutin ang toast sa oras upang kumilos (dahil ang mga toast ay hindi nakakatanggap ng focus kapag ipinakita ang mga ito). Kung talagang dapat kang magkaroon ng karagdagang mga kontrol, inirerekomenda namin ang paggamit ng toast na may autohide: false
.
Pag-uugali ng JavaScript
Paggamit
Magsimula ng mga toast sa pamamagitan ng JavaScript:
$('.toast').toast(option)
Mga pagpipilian
Maaaring ipasa ang mga opsyon sa pamamagitan ng mga katangian ng data o JavaScript. Para sa mga katangian ng data, idagdag ang pangalan ng opsyon sa data-
, tulad ng sa data-animation=""
.
Pangalan | Uri | Default | Paglalarawan |
---|---|---|---|
animation | boolean | totoo | Maglapat ng CSS fade transition sa toast |
autohide | boolean | totoo | Awtomatikong itago ang toast |
pagkaantala | numero | 500 |
Antalahin ang pagtatago ng toast (ms) |
Paraan
Mga asynchronous na pamamaraan at paglipat
Ang lahat ng mga pamamaraan ng API ay asynchronous at nagsisimula ng isang paglipat . Bumalik sila sa tumatawag sa sandaling magsimula ang paglipat ngunit bago ito matapos . Bilang karagdagan, babalewalain ang isang method call sa isang transitioning component .
Tingnan ang aming dokumentasyon ng JavaScript para sa higit pang impormasyon .
$().toast(options)
Naglalagay ng toast handler sa isang koleksyon ng elemento.
.toast('show')
Nagpapakita ng toast ng isang elemento. Bumabalik sa tumatawag bago naipakita ang toast (ibig sabihin, bago shown.bs.toast
mangyari ang kaganapan). Kailangan mong manual na tawagan ang paraang ito, sa halip ay hindi lalabas ang iyong toast.
$('#element').toast('show')
.toast('hide')
Itinatago ang toast ng isang elemento. Bumabalik sa tumatawag bago pa talaga naitago ang toast (ibig sabihin, bago hidden.bs.toast
mangyari ang kaganapan). Kailangan mong manu-manong tawagan ang paraang ito kung ginawa autohide
mong false
.
$('#element').toast('hide')
.toast('dispose')
Itinatago ang toast ng isang elemento. Ang iyong toast ay mananatili sa DOM ngunit hindi na lalabas.
$('#element').toast('dispose')
Mga kaganapan
Uri ng kaganapan | Paglalarawan |
---|---|
show.bs.toast | Agad na gagana ang kaganapang ito kapag show tinawag ang paraan ng instance. |
ipinakita.bs.toast | Ang kaganapang ito ay gagana kapag ang toast ay ginawang nakikita ng user. |
itago.bs.toast | Agad na pinapagana ang kaganapang ito kapag hide tinawag na ang paraan ng instance. |
hidden.bs.toast | Ang kaganapang ito ay gagana kapag ang toast ay tapos nang itago mula sa user. |
$('#myToast').on('hidden.bs.toast', function () {
// do something...
})