Vaihda kontekstuaaliset peittokuvat linkkiluetteloiden ja muiden näyttämiseksi Bootstrap-pudotusvalikon avulla.
Yleiskatsaus
Avattavat valikot ovat vaihdettavissa, kontekstuaaliset peittokuvat linkkiluetteloiden näyttämiseen ja paljon muuta. Ne on tehty interaktiivisiksi mukana tulevalla Bootstrap-pudotusvalikon JavaScript-laajennuksella. Ne vaihdetaan napsauttamalla, ei viemällä hiiri; tämä on tahallinen suunnittelupäätös .
Avattavat valikot perustuvat kolmannen osapuolen kirjastoon Popper.js , joka tarjoaa dynaamisen paikantamisen ja näkymän havaitsemisen. Muista lisätä popper.min.js ennen Bootstrapin JavaScriptiä tai käyttää bootstrap.bundle.min.js/ bootstrap.bundle.jsjoka sisältää Popper.js:n. Popper.js:ää ei kuitenkaan käytetä avattavien valikoiden sijoittamiseen navigointipalkeissa, koska dynaamista paikannusta ei tarvita.
Jos rakennat JavaScript-koodiamme lähteestä, se vaatiiutil.js .
Esteettömyys
WAI ARIA -standardi määrittelee varsinaisen role="menu"widgetin , mutta tämä koskee vain sovellusmaisia valikoita, jotka käynnistävät toimintoja tai toimintoja. ARIA -valikot voivat sisältää vain valikkokohtia, valintaruutuvalikkokohteita, valintanappivalikkokohtia, valintanappiryhmiä ja alivalikoita.
Bootstrapin pudotusvalikot on toisaalta suunniteltu yleisiksi ja soveltuvaksi erilaisiin tilanteisiin ja merkintärakenteisiin. On esimerkiksi mahdollista luoda avattavia valikoita, jotka sisältävät lisäsyötteitä ja lomakeohjausobjekteja, kuten hakukenttiä tai kirjautumislomakkeita. Tästä syystä Bootstrap ei odota (ei lisää automaattisesti) mitään todellisten ARIA - valikoiden edellyttämistä roleja -määritteistä. Kirjoittajien on sisällytettävä nämä tarkemmat attribuutit itse.aria-
Bootstrap kuitenkin lisää sisäänrakennetun tuen useimmille tavallisille näppäimistövalikon vuorovaikutuksille, kuten mahdollisuuden liikkua yksittäisten .dropdown-itemelementtien välillä kohdistinnäppäimillä ja sulkea valikko ESCnäppäimellä.
Esimerkkejä
Kääri avattavan valikon kytkin (painike tai linkki) ja avattava valikko sisään .dropdowntai muuhun elementtiin, joka ilmoittaa position: relative;. Pudotusvalikot voidaan laukaista <a>tai <button>elementeistä, jotka sopivat paremmin mahdollisiin tarpeisiisi.
Yksi painike
Mikä tahansa single .btnvoidaan muuttaa pudotusvalikon vaihtokytkimeksi muutamilla merkintämuutoksilla. Näin voit laittaa ne toimimaan jommankumman <button>elementin kanssa:
Samoin voit luoda jaetun painikkeen avattavia valikoita, joissa on käytännössä samat merkinnät kuin yhden painikkeen avattavat valikot, mutta lisäämällä .dropdown-toggle-splitoikean välin pudotusvalikon ympärille.
Käytämme tätä ylimääräistä luokkaa pienentämään vaakasuoraa paddingkennon kummallakin puolella 25 % ja poistamaan margin-lefttavallisiin painikkeiden pudotusvalikoihin lisätyn. Nämä lisämuutokset pitävät pisteen keskitettynä jakopainikkeessa ja tarjoavat sopivamman kokoisen osumaalueen pääpainikkeen viereen.
Historiallisesti pudotusvalikon sisällön piti olla linkkejä, mutta se ei ole enää versiossa 4. Nyt voit valinnaisesti käyttää <button>elementtejä pudotusvalikoissasi pelkän <a>s:n sijaan.
Voit myös luoda ei-interaktiivisia avattavia kohteita .dropdown-item-text. Voit vapaasti muokata tyyliä lisää mukautettujen CSS- tai tekstiapuohjelmien avulla.
Oletusarvoisesti avattava valikko sijoitetaan automaattisesti 100 %:sti ylätasonsa yläpuolelle ja vasemmalle puolelle. Lisää .dropdown-menu-righta .dropdown-menu-kohtaan oikealle tasaa avattava valikko.
Varoitus! Pudotusvalikot sijoitetaan Popper.js:n ansiosta (paitsi silloin, kun ne sisältyvät navigointipalkkiin).
Responsiivinen kohdistus
Jos haluat käyttää reagoivaa tasausta, poista dynaaminen paikannus käytöstä lisäämällä data-display="static"attribuutti ja käytä responsiivisia muunnelmaluokkia.
Tasaa avattava valikko oikealle annettuun tai suurempaan keskeytyskohtaan lisäämällä .dropdown-menu{-sm|-md|-lg|-xl}-right.
Tasaa vasemmalle avattava valikko tietyn tai suuremman keskeytyskohdan kanssa lisäämällä .dropdown-menu-rightja .dropdown-menu{-sm|-md|-lg|-xl}-left.
Huomaa, että sinun ei tarvitse lisätä data-display="static"attribuuttia navigointipalkkien avattaviin painikkeisiin, koska Popper.js:ää ei käytetä navigointipalkissa.
Valikon sisältö
Otsikot
Lisää otsikko minkä tahansa avattavan valikon toimintoosioille.
Sijoita vapaamuotoinen teksti tekstiä sisältävään pudotusvalikkoon ja käytä välilyöntejä . Huomaa, että tarvitset todennäköisesti lisää kokotyylejä valikon leveyden rajoittamiseksi.
Jotain esimerkkitekstiä, joka kulkee vapaasti avattavassa valikossa.
Ja tämä on enemmän esimerkkitekstiä.
Lomakkeet
Lisää lomake avattavaan valikkoon tai tee siitä avattava valikko ja käytä marginaali- tai täyteapuohjelmia antaaksesi sille tarvitsemasi negatiivinen tila.
Tietomääritteiden tai JavaScriptin avulla avattava laajennus vaihtaa piilotettua sisältöä (pudotusvalikot) vaihtamalla .showluokkaa ylätason luettelokohteessa. Attribuuttia data-toggle="dropdown"käytetään sovellustason pudotusvalikoiden sulkemiseen, joten on hyvä idea käyttää sitä aina.
Kosketuskäyttöisissä laitteissa avattavan valikon avaaminen lisää tyhjät ( $.noop) mouseoverkäsittelijät <body>elementin välittömiin lapsiin. Tämä kieltämättä ruma hakkerointi on välttämätön iOS-tapahtuman delegoinnin omituisuuden kiertämiseksi , mikä muuten estäisi napautusta missään avattavan valikon ulkopuolella käynnistämästä koodia, joka sulkee avattavan valikon. Kun pudotusvalikko on suljettu, nämä ylimääräiset tyhjät mouseoverkäsittelijät poistetaan.
Tietomääritteiden kautta
Lisää data-toggle="dropdown"linkkiin tai painikkeeseen avataksesi avattavan valikon.
JavaScriptin kautta
Kutsu avattavat valikot JavaScriptin kautta:
data-toggle="dropdown"edelleen vaaditaan
Riippumatta siitä, kutsutko avattavaa valikkoa JavaScriptin kautta vai käytätkö sen sijaan data-api:tä, data-toggle="dropdown"sen on aina oltava läsnä avattavan valikon triggerelementissä.
Vaihtoehdot
Vaihtoehdot voidaan välittää tietomääritteiden tai JavaScriptin kautta. Liitä tietomääritteissä vaihtoehdon nimi kohtaan data-, kuten kohdassa data-offset="".
Nimi
Tyyppi
Oletus
Kuvaus
offset
numero | merkkijono | toiminto
0
Pudotusvalikon poikkeama suhteessa tavoitteeseen.
Kun funktiota käytetään määrittämään siirtymä, sitä kutsutaan objektilla, joka sisältää offset-tiedot ensimmäisenä argumenttina. Funktion on palautettava objekti, jolla on sama rakenne. Liipaisuelementin DOM-solmu välitetään toisena argumenttina.
Huomaa, kun boundaryarvoksi on asetettu jokin muu arvo kuin 'scrollParent', tyyliä position: statickäytetään .dropdownsäilöön.
menetelmät
Menetelmä
Kuvaus
$().dropdown('toggle')
Vaihtaa tietyn navigointipalkin tai välilehdellä varustetun navigoinnin avattavan valikon.
$().dropdown('show')
Näyttää tietyn navigointipalkin tai välilehtinavigoinnin avattavan valikon.
$().dropdown('hide')
Piilottaa tietyn navigointipalkin tai välilehdellä varustetun navigoinnin avattavan valikon.
$().dropdown('update')
Päivittää elementin avattavan valikon sijainnin.
$().dropdown('dispose')
Tuhoaa elementin pudotusvalikon.
Tapahtumat
Kaikki pudotusvalikon tapahtumat käynnistetään .dropdown-menupääelementissä, ja niillä on relatedTargetominaisuus, jonka arvo on vaihto-ankkurielementti. hide.bs.dropdownja hidden.bs.dropdowntapahtumilla on clickEventominaisuus (vain kun alkuperäinen tapahtumatyyppi on click), joka sisältää napsautustapahtuman Tapahtumaobjektin.
Tapahtuma
Kuvaus
show.bs.dropdown
Tämä tapahtuma käynnistyy välittömästi, kun show-instanssimenetelmää kutsutaan.
shown.bs.dropdown
Tämä tapahtuma käynnistyy, kun pudotusvalikko on näkyvissä käyttäjälle (odottaa CSS-siirtymien valmistumista).
hide.bs.dropdown
Tämä tapahtuma käynnistyy välittömästi, kun piiloilmentymämenetelmä on kutsuttu.
hidden.bs.dropdown
Tämä tapahtuma käynnistyy, kun avattava valikko on piilotettu käyttäjältä (odottaa CSS-siirtymien valmistumista).