Toasts
Alefaso ny fampandrenesana ho an'ny mpitsidika anao miaraka amin'ny toast, hafatra fanairana maivana ary mora azo amboarina.
Ny toast dia fampandrenesana maivana natao haka tahaka ny fampandrenesana fanosehana izay nalaza tamin'ny rafitra fiasana finday sy desktop. Namboarina tamin'ny flexbox izy ireo, noho izany dia mora ny mandrindra sy mametraka azy ireo.
Overview
Zavatra tokony ho fantatra rehefa mampiasa ny plugin toast:
- Ny toast dia nisafidy noho ny antony fampisehoana, ka tsy maintsy ataonao voalohany izy ireo .
- Hafenina ho azy ny toasts raha tsy voatondro
autohide: false
.
prefers-reduced-motion
fangatahan'ny haino aman-jery ny fiantraikan'ity singa ity. Jereo ny
fizarana mihetsika mihena amin'ny antontan-taratasinay momba ny fahafahana miditra .
OHATRA
Basic
Mba hamporisihana toast azo itarina sy azo vinavinaina, dia manoro hevitra ny lohapejy sy vatana. Ny lohatenin'ny toast dia ampiasaina display: flex
, mamela ny fampifanarahana mora amin'ny atiny noho ny fampiasanay margin sy flexbox.
Ny toast dia malefaka araka izay ilainao ary manana marika kely ilaina. Farafaharatsiny, mitaky singa tokana izahay mba hitehirizana ny atiny “voatoto” ary mamporisika mafy ny bokotra fandroahana.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
.hide
kilasy hanafenana tanteraka ny toast (miaraka amin'ny
display:none
, fa tsy miaraka amin'ny
opacity:0
). Tsy ilaina intsony izany ankehitriny. Na izany aza, ho an'ny fampifanarahana mihemotra, ny scripty dia hanohy hanodina ny kilasy (na dia tsy ilaina aza izany) mandra-pahatongan'ny dikan-teny lehibe manaraka.
Ohatra mivantana
Kitiho ny bokotra eto ambany raha te hampiseho toast (apetraka miaraka amin'ny fitaovanay eo amin'ny zoro havanana ambany) izay nafenina tamin'ny alàlan'ny default.
<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
<div class="position-fixed bottom-0 end-0 p-3" style="z-index: 11">
<div id="liveToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
</div>
Mampiasa ity JavaScript manaraka ity izahay hanetsika ny demo toast mivantana:
var toastTrigger = document.getElementById('liveToastBtn')
var toastLiveExample = document.getElementById('liveToast')
if (toastTrigger) {
toastTrigger.addEventListener('click', function () {
var toast = new bootstrap.Toast(toastLiveExample)
toast.show()
})
}
Translucent
Somary mangarahara ny toast mba hifangaro amin'izay eo ambany.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small class="text-muted">11 mins ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
Stacking
Azonao atao ny manangom-bokatra amin'ny alàlan'ny famonosana azy ao anaty fitoeran-toast, izay hampisy elanelana mitsangana.
<div class="toast-container">
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small class="text-muted">just now</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></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 me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small class="text-muted">2 seconds ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Heads up, toasts will stack automatically
</div>
</div>
</div>
atiny manokana
Amboary ny toasts anao amin'ny alàlan'ny fanesorana ireo singa fototra, asio azy ireo amin'ny fitaovana ampiasaina , na amin'ny fampidirana ny marikao manokana. Eto izahay dia namorona toast tsotra kokoa amin'ny alàlan'ny fanesorana ny default .toast-header
, manampy kisary manafina mahazatra avy amin'ny Bootstrap Icons , ary mampiasa fitaovana flexbox sasany hanitsiana ny lamina .
<div class="toast align-items-center" role="alert" aria-live="assertive" aria-atomic="true">
<div class="d-flex">
<div class="toast-body">
Hello, world! This is a toast message.
</div>
<button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
</div>
Azonao atao ihany koa ny manampy fanaraha-maso sy singa fanampiny amin'ny toast.
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-body">
Hello, world! This is a toast message.
<div class="mt-2 pt-2 border-top">
<button type="button" class="btn btn-primary btn-sm">Take action</button>
<button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="toast">Close</button>
</div>
</div>
</div>
Tetika loko
Miorina amin'ny ohatra etsy ambony, azonao atao ny mamorona lokon'ny toast samihafa miaraka amin'ny fampiasantsika loko sy fiaviana . Eto izahay dia nanampy .bg-primary
sy .text-white
ny .toast
, ary avy eo nampidirina .btn-close-white
tamin'ny bokotra akaiky. Ho an'ny sisiny manjavozavo dia esorinay ny sisintany mahazatra miaraka amin'ny .border-0
.
<div class="toast align-items-center text-white bg-primary border-0" role="alert" aria-live="assertive" aria-atomic="true">
<div class="d-flex">
<div class="toast-body">
Hello, world! This is a toast message.
</div>
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
</div>
fametrahana
Mametraha toast miaraka amin'ny CSS mahazatra araka izay ilainao. Ny ambony havanana dia matetika ampiasaina amin'ny fampahafantarana, toy ny eo afovoany ambony. Raha toa ianao ka hampiseho toast iray isaky ny mandeha dia apetraho eo amin'ny .toast
.
<form>
<div class="mb-3">
<label for="selectToastPlacement">Toast placement</label>
<select class="form-select mt-2" id="selectToastPlacement">
<option value="" selected>Select a position...</option>
<option value="top-0 start-0">Top left</option>
<option value="top-0 start-50 translate-middle-x">Top center</option>
<option value="top-0 end-0">Top right</option>
<option value="top-50 start-0 translate-middle-y">Middle left</option>
<option value="top-50 start-50 translate-middle">Middle center</option>
<option value="top-50 end-0 translate-middle-y">Middle right</option>
<option value="bottom-0 start-0">Bottom left</option>
<option value="bottom-0 start-50 translate-middle-x">Bottom center</option>
<option value="bottom-0 end-0">Bottom right</option>
</select>
</div>
</form>
<div aria-live="polite" aria-atomic="true" class="bg-dark position-relative bd-example-toasts">
<div class="toast-container position-absolute p-3" id="toastPlacement">
<div class="toast">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>11 mins ago</small>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
</div>
</div>
Ho an'ny rafitra miteraka fampandrenesana bebe kokoa dia diniho ny fampiasana singa famonosana mba hahafahan'izy ireo mitambatra mora foana.
<div aria-live="polite" aria-atomic="true" class="position-relative">
<!-- Position it: -->
<!-- - `.toast-container` for spacing between toasts -->
<!-- - `.position-absolute`, `top-0` & `end-0` to position the toasts in the upper right corner -->
<!-- - `.p-3` to prevent the toasts from sticking to the edge of the container -->
<div class="toast-container position-absolute top-0 end-0 p-3">
<!-- Then put toasts within -->
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small class="text-muted">just now</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></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 me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small class="text-muted">2 seconds ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Heads up, toasts will stack automatically
</div>
</div>
</div>
</div>
Azonao atao ihany koa ny mirefy amin'ny fitaovana flexbox mba hampifanaraka ny toast amin'ny horizontaly sy/na mitsangana.
<!-- Flexbox container for aligning the toasts -->
<div aria-live="polite" aria-atomic="true" class="d-flex justify-content-center align-items-center w-100">
<!-- Then put toasts within -->
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
</div>
Accessibility
Ny toast dia natao ho fanelingelenana kely ho an'ny mpitsidika na mpampiasa anao, ka mba hanampiana ireo manana mpamaky efijery sy teknolojia fanampiana mitovy amin'izany, dia tokony hafeninao amin'ny aria-live
faritra iray ny toasts . Ny fiovana amin'ny faritra velona (toy ny fanindronana/fanavaozana ny singa toast) dia ambaran'ny mpamaky efijery ho azy fa tsy mila manetsika ny fifantohan'ny mpampiasa na manapaka ny mpampiasa. Fanampin'izany, ampidiro aria-atomic="true"
mba hahazoana antoka fa ny toast iray manontolo dia nambara ho singa tokana (atomika), fa tsy manambara fotsiny izay niova (izay mety hiteraka olana raha manavao ampahany amin'ny votoatin'ny toast fotsiny ianao, na raha mampiseho atiny toast mitovy amin'izany. amin'ny fotoana manaraka). Raha zava-dehibe amin'ny dingana ny fampahalalana ilaina, ohatra amin'ny lisitry ny lesoka amin'ny endrika iray, dia ampiasao ny singa fanairanaho solon'ny mofo mofo.
Mariho fa ny faritra velona dia tsy maintsy misy ao amin'ny marika alohan'ny hamokarana na havaozina ny toast. Raha mamorona azy roa miaraka ianao ary manindrona azy ireo ao amin'ny pejy, dia tsy hambara amin'ny teknolojia fanampiana izy ireo.
Ilainao koa ny mampifanaraka ny role
sy ny aria-live
haavony arakaraka ny atiny. Raha hafatra manan-danja toy ny hadisoana dia ampiasao role="alert" aria-live="assertive"
, raha tsy izany dia ampiasao role="status" aria-live="polite"
ny toetra.
Satria miova ny atiny asehonao, ataovy azo antoka ny fanavaozana ny delay
fe -potoana mba hanana fotoana ampy hamakiana ny toast ny mpampiasa.
<div class="toast" role="alert" aria-live="polite" aria-atomic="true" data-bs-delay="10000">
<div role="alert" aria-live="assertive" aria-atomic="true">...</div>
</div>
Rehefa mampiasa autohide: false
, dia tsy maintsy manampy bokotra akaiky ianao mba hamela ny mpampiasa hanilika ny toast.
<div role="alert" aria-live="assertive" aria-atomic="true" class="toast" data-bs-autohide="false">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>11 mins ago</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">
Hello, world! This is a toast message.
</div>
</div>
Raha ara-teknika dia azo atao ny manampy fanaraha-maso azo ianteherana/azo atao (toy ny bokotra fanampiny na rohy) ao amin'ny toast anao, tokony hialana amin'ny fanaovana izany ianao amin'ny fanafenana toast. Na dia omenao fotoana lava be aza ny toast delay
, dia mety ho sarotra amin'ny mpampiasa ny fitendry sy ny teknolojia manampy ny hahatongavana amin'ny toast ara-potoana hanaovana hetsika (satria tsy mahazo fifantohana ny toast rehefa aseho). Raha tsy maintsy manana fanaraha-maso bebe kokoa ianao, dia manoro hevitra ny hampiasa toast miaraka amin'ny autohide: false
.
Sass
hiovaova
$toast-max-width: 350px;
$toast-padding-x: .75rem;
$toast-padding-y: .5rem;
$toast-font-size: .875rem;
$toast-color: null;
$toast-background-color: rgba($white, .85);
$toast-border-width: 1px;
$toast-border-color: rgba($black, .1);
$toast-border-radius: $border-radius;
$toast-box-shadow: $box-shadow;
$toast-spacing: $container-padding-x;
$toast-header-color: $gray-600;
$toast-header-background-color: rgba($white, .85);
$toast-header-border-color: rgba($black, .05);
Fampiasana
Atombohy ny toast amin'ny JavaScript:
var toastElList = [].slice.call(document.querySelectorAll('.toast'))
var toastList = toastElList.map(function (toastEl) {
return new bootstrap.Toast(toastEl, option)
})
Niteraka
Ny fandroahana dia azo atao amin'ny data
toetra amin'ny bokotra iray ao anatin'ny toast araka ny aseho eto ambany:
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
na amin'ny bokotra iray ivelan'ny toast amin'ny fampiasana ny data-bs-target
aseho eto ambany:
<button type="button" class="btn-close" data-bs-dismiss="toast" data-bs-target="#my-toast" aria-label="Close"></button>
FANDIKANA
Ny safidy dia azo alefa amin'ny alàlan'ny toetran'ny data na JavaScript. Ho an'ny toetran'ny data, ampidiro amin'ny data-bs-
, toy ny ao amin'ny data-bs-animation=""
.
Anarana | Type | toerana misy anao | Description |
---|---|---|---|
animation |
boolean | true |
Ampiharo CSS fade transition amin'ny toast |
autohide |
boolean | true |
Afeno ho azy ny toast |
delay |
isa | 5000 |
Fanemorana ny fanafenana ny toast (ms) |
fomba
Fomba sy fifindrana asynchronous
Ny fomba API rehetra dia asynchronous ary manomboka tetezamita . Miverina any amin'ny mpiantso izy ireo raha vao manomboka ny tetezamita fa alohan'ny hifarana . Ho fanampin'izany, tsy hojerena ny fiantsoana fomba iray amin'ny singa tetezamita .
Jereo ny antontan-taratasintsika JavaScript raha mila fanazavana fanampiny .
FAMPISEHOANA
Mampiseho toast an'ny singa iray. Miverina any amin'ny mpiantso alohan'ny nampisehoana ny toast (izany hoe alohan'ny shown.bs.toast
nitrangan'ny hetsika). Tsy maintsy miantso an'io fomba io ianao, fa tsy hiseho ny mofonao.
toast.show()
afeno ny
Manafina ny toast an'ny singa iray. Miverina amin'ny mpiantso alohan'ny nafenina ny toast (izany hoe alohan'ny hidden.bs.toast
nitrangan'ny hetsika). Tsy maintsy miantso an'io fomba io ianao raha autohide
nanao false
.
toast.hide()
Ario
Manafina ny toast an'ny singa iray. Hijanona ao amin'ny DOM ny mofonao fa tsy hiseho intsony.
toast.dispose()
getInstance
Fomba static izay ahafahanao mahazo ny ohatra toast mifandray amin'ny singa DOM
var myToastEl = document.getElementById('myToastEl')
var myToast = bootstrap.Toast.getInstance(myToastEl) // Returns a Bootstrap toast instance
getOrCreateInstance
Fomba static izay ahafahanao mahazo ny ohatra toast mifandray amin'ny singa DOM, na mamorona vaovao raha toa ka tsy natomboka izany
var myToastEl = document.getElementById('myToastEl')
var myToast = bootstrap.Toast.getOrCreateInstance(myToastEl) // Returns a Bootstrap toast instance
zava-mitranga
Karazana hetsika | Description |
---|---|
show.bs.toast |
Mirehitra avy hatrany ity hetsika ity rehefa show antsoina ny fomba fiasa. |
shown.bs.toast |
Ity hetsika ity dia alefa rehefa naseho ho hitan'ny mpampiasa ny toast. |
hide.bs.toast |
Ity hetsika ity dia alefa avy hatrany rehefa hide nantsoina ny fomba fiasa. |
hidden.bs.toast |
Ity hetsika ity dia alefa rehefa vita ny nafenina tamin'ny mpampiasa ny toast. |
var myToastEl = document.getElementById('myToast')
myToastEl.addEventListener('hidden.bs.toast', function () {
// do something...
})