Aftrekkies
Wissel kontekstuele oorlegsels vir die vertoon van lyste skakels en meer met die Bootstrap-aftrek-inprop.
Aftrekkies is wisselbare, kontekstuele oorlegsels vir die vertoon van lyste skakels en meer. Hulle word interaktief gemaak met die ingeslote Bootstrap-aftreklys JavaScript-inprop. Hulle word gewissel deur te klik, nie deur te beweeg nie; dit is ' n doelbewuste ontwerpbesluit.
Dropdowns is gebou op 'n derdeparty-biblioteek, Popper.js , wat dinamiese posisionering en kykpoort-opsporing bied. Maak seker dat jy popper.min.js voor Bootstrap se JavaScript insluit of gebruik bootstrap.bundle.min.js
/ bootstrap.bundle.js
wat Popper.js bevat. Popper.js word nie gebruik om aftrekkies in navigasiebalke te posisioneer nie, aangesien dinamiese posisionering nie vereis word nie.
As jy ons JavaScript vanaf die bron bou, vereisutil.js
dit .
Die WAI ARIA - standaard definieer 'n werklike role="menu"
legstuk , maar dit is spesifiek vir toepassingagtige spyskaarte wat aksies of funksies aktiveer. ARIA -kieslyste kan slegs kieslys-items, bokskieslysitems, radioknoppie-kieslysitems, radioknoppiegroepe en subkieslyste bevat.
Bootstrap se aftreklys, aan die ander kant, is ontwerp om generies te wees en van toepassing op 'n verskeidenheid situasies en opmaakstrukture. Dit is byvoorbeeld moontlik om aftreklys te skep wat bykomende invoere en vormkontroles bevat, soos soekvelde of aanmeldvorms. Om hierdie rede verwag Bootstrap nie (en voeg ook nie outomaties by) enige van die role
en aria-
kenmerke wat nodig is vir ware ARIA- spyskaarte nie. Skrywers sal hierdie meer spesifieke eienskappe self moet insluit.
Bootstrap voeg egter ingeboude ondersteuning by vir die meeste standaard sleutelbordkieslysinteraksies, soos die vermoë om deur individuele .dropdown-item
elemente te beweeg deur die wysersleutels te gebruik en die spyskaart met die ESCsleutel toe te maak.
Draai die aftreklys se skakelaar (jou knoppie of skakel) en die aftreklys binne .dropdown
, of 'n ander element wat verklaar position: relative;
. Dropdowns kan geaktiveer word vanaf <a>
of <button>
elemente om beter by jou potensiële behoeftes te pas.
Enige enkele .btn
kan verander word in 'n aftrek-skakelaar met 'n paar opmaakveranderinge. Hier is hoe jy hulle met enige van die <button>
elemente kan laat werk:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
En met <a>
elemente:
<div class="dropdown show">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
Die beste deel is dat jy dit ook met enige knoppievariant kan doen:
Skep eweneens verdeelknoppie-aftrekkies met feitlik dieselfde opmaak as enkelknoppie-aftrekkies, maar met die byvoeging van .dropdown-toggle-split
vir behoorlike spasiëring rondom die aftreklys.
Ons gebruik hierdie ekstra klas om die horisontale padding
aan weerskante van die karet met 25% te verminder en verwyder die margin-left
wat bygevoeg is vir gereelde knoppie-aftrekkies. Daardie ekstra veranderinge hou die karet gesentreer in die verdeelknoppie en bied 'n meer toepaslike grootte trefarea langs die hoofknoppie.
Knoppie-aftrekkies werk met knoppies van alle groottes, insluitend verstek- en verdeel-aftrekkiesknoppies.
Sneller aftrekkieslyste bo elemente deur by .dropup
die ouerelement by te voeg.
Sneller aftrekkieslys aan die regterkant van die elemente deur by .dropright
die ouerelement te voeg.
Sneller aftrekkieslys aan die linkerkant van die elemente deur by .dropleft
die ouerelement te voeg.
Histories moes die inhoud van die aftreklys skakels wees, maar dit is nie meer die geval met v4 nie. Nou kan jy opsioneel <button>
elemente in jou aftreklys gebruik in plaas van net <a>
s.
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
By verstek word 'n aftreklys outomaties 100% van bo en langs die linkerkant van sy ouer geposisioneer. Voeg .dropdown-menu-right
by 'n .dropdown-menu
na regs-belyn die aftreklys.
Let op! Aftrekkies word geposisioneer danksy Popper.js (behalwe wanneer dit in 'n navigasiebalk vervat is).
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Right-aligned menu
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
Voeg 'n kopskrif by om afdelings van handelinge in enige aftreklys te benoem.
<div class="dropdown-menu">
<h6 class="dropdown-header">Dropdown header</h6>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
</div>
Skei groepe verwante spyskaartitems met 'n verdeler.
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
Plaas 'n vorm in 'n aftrekkieslys, of maak dit in 'n aftreklys, en gebruik marge- of opvullingshulpmiddels om dit die negatiewe spasie te gee wat u benodig.
<div class="dropdown-menu">
<form class="px-4 py-3">
<div class="form-group">
<label for="exampleDropdownFormEmail1">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword1">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">New around here? Sign up</a>
<a class="dropdown-item" href="#">Forgot password?</a>
</div>
<form class="dropdown-menu p-4">
<div class="form-group">
<label for="exampleDropdownFormEmail2">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail2" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword2">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck2">
<label class="form-check-label" for="dropdownCheck2">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Voeg .active
by items in die aftreklys om hulle as aktief te styl .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item active" href="#">Active link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Voeg .disabled
by items in die aftreklys om dit as gedeaktiveer te styl .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item disabled" href="#">Disabled link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
.show
Via data-kenmerke of JavaScript skakel die aftrek-inprop verborge inhoud (aftrekkieslyste) deur die klas op die ouerlysitem te wissel . Daar data-toggle="dropdown"
word op die kenmerk staatgemaak vir die sluiting van aftreklyste op 'n toepassingsvlak, so dit is 'n goeie idee om dit altyd te gebruik.
Op touch-geaktiveerde toestelle, die opening van 'n aftreklys voeg leë ( $.noop
) mouseover
hanteerders by die onmiddellike kinders van die <body>
element. Hierdie weliswaar lelike hack is nodig om 'n eienaardigheid in iOS se gebeurtenisafvaardiging te omseil , wat andersins sou verhoed dat 'n tik op enige plek buite die aftreklys die kode aktiveer wat die aftreklys toemaak. Sodra die aftreklys gesluit is, word hierdie bykomende leë mouseover
hanteerders verwyder.
Voeg data-toggle="dropdown"
by 'n skakel of knoppie om 'n aftreklys te wissel.
Bel die aftreklys via JavaScript:
data-toggle="dropdown"
steeds benodig
Ongeag of jy jou aftreklys via JavaScript oproep of eerder die data-api gebruik, data-toggle="dropdown"
moet altyd teenwoordig wees op die aftreklys se sneller-element.
Opsies kan deur data-kenmerke of JavaScript deurgegee word. Vir data-kenmerke, voeg die opsienaam by data-
, soos in data-offset=""
.
Naam | Tik | Verstek | Beskrywing |
---|---|---|---|
verreken | nommer | tou | funksie | 0 | Verskuiwing van die aftreklys relatief tot sy teiken. Vir meer inligting verwys na Popper.js se offset docs . |
flip | boolean | waar | Laat Dropdown toe om te draai in die geval van 'n oorvleueling op die verwysingselement. Vir meer inligting verwys na Popper.js se flip docs . |
grens | tou | element | 'scrollParent' | Oorloop beperkingsgrens van die aftreklys. Aanvaar die waardes van 'viewport' , 'window' , 'scrollParent' , of 'n HTMLElement-verwysing (slegs JavaScript). Vir meer inligting, verwys na Popper.js se preventOverflow-dokumente . |
Let op wanneer boundary
op enige ander waarde as gestel 'scrollParent'
is, word die styl position: static
op die .dropdown
houer toegepas.
Metode | Beskrywing |
---|---|
$().dropdown('toggle') |
Wissel die aftreklys van 'n gegewe navigasiebalk of navigasie met oortjies. |
$().dropdown('update') |
Dateer die posisie van 'n element se aftreklys op. |
$().dropdown('dispose') |
Vernietig 'n element se aftreklys. |
Alle aftrek-gebeurtenisse word afgevuur op die .dropdown-menu
se ouerelement en het 'n relatedTarget
eienskap, waarvan die waarde die wissel-ankerelement is.
Gebeurtenis | Beskrywing |
---|---|
show.bs.dropdown |
Hierdie gebeurtenis begin onmiddellik wanneer die wys-instansie-metode geroep word. |
shown.bs.dropdown |
Hierdie gebeurtenis word afgevuur wanneer die aftreklys vir die gebruiker sigbaar gemaak is (sal wag vir CSS-oorgange om te voltooi). |
hide.bs.dropdown |
Hierdie gebeurtenis word onmiddellik afgevuur wanneer die versteek instansie metode geroep is. |
hidden.bs.dropdown |
Hierdie gebeurtenis word afgevuur wanneer die aftreklys klaar vir die gebruiker versteek is (sal wag vir CSS-oorgange om te voltooi). |