Preklopite kontekstualne prekrivke za prikaz seznamov povezav in več s spustnim vtičnikom Bootstrap.
Pregled
Spustni meniji so preklopni, kontekstualni prekrivki za prikazovanje seznamov povezav in več. Interaktivni so z vključenim spustnim vtičnikom Bootstrap JavaScript. Preklopijo se s klikom, ne z lebdenjem; to je namerna oblikovalska odločitev .
Spustni meniji so zgrajeni na podlagi knjižnice tretje osebe, Popper.js , ki zagotavlja dinamično pozicioniranje in zaznavanje vidnega polja. Ne pozabite vključiti popper.min.js pred JavaScript Bootstrapa ali uporabite bootstrap.bundle.min.js/ bootstrap.bundle.js, ki vsebuje Popper.js. Popper.js se ne uporablja za pozicioniranje spustnih menijev v vrsticah za krmarjenje, čeprav dinamično pozicioniranje ni potrebno.
Če gradite naš JavaScript iz izvorne kode, zahtevautil.js .
Dostopnost
Standard WAI ARIA definira dejanski role="menu"gradnik , vendar je to specifično za menije, podobne aplikacijam, ki sprožijo dejanja ali funkcije. Meniji ARIA lahko vsebujejo samo menijske elemente, menijske elemente potrditvenih polj, menijske elemente izbirnih gumbov, skupine izbirnih gumbov in podmenije.
Po drugi strani pa so spustni meniji Bootstrap zasnovani tako, da so generični in uporabni za različne situacije in strukture označevanja. Na primer, mogoče je ustvariti spustne menije, ki vsebujejo dodatne vnose in kontrolnike obrazcev, kot so iskalna polja ali obrazci za prijavo. Iz tega razloga Bootstrap ne pričakuje (niti samodejno doda) nobenega od atributov rolein , potrebnih za prave menije ARIA . Avtorji bodo morali te bolj specifične lastnosti vključiti sami.aria-
Vendar pa Bootstrap dodaja vgrajeno podporo za večino standardnih interakcij z meniji tipkovnice, kot je možnost premikanja po posameznih .dropdown-itemelementih s smernimi tipkami in zapiranje menija s ESCtipko.
Primeri
Zavijte preklop spustnega menija (vaš gumb ali povezava) in spustni meni znotraj .dropdownali drug element, ki deklarira position: relative;. Spustne menije je mogoče sprožiti iz <a>ali <button>elementov, da bolje ustrezajo vašim potencialnim potrebam.
En gumb
Vsak posamezen .btnelement lahko spremenite v spustni preklop z nekaj spremembami oznak. Tukaj je opisano, kako jih lahko vključite v delo z obema <button>elementoma:
Podobno ustvarite spustne menije z ločenimi gumbi s skoraj enakimi oznakami kot spustne menije z enim gumbom, vendar z dodatkom .dropdown-toggle-splitza pravilen razmik okoli spustne kazalke.
Ta dodatni razred uporabljamo za zmanjšanje vodoravnice paddingna obeh straneh kazalke za 25 % in odstranitev, margin-leftki je dodan za navadne spustne menije gumbov. Te dodatne spremembe ohranjajo kazalko na sredini gumba za razdelitev in zagotavljajo primernejšo velikost območja zadetka poleg glavnega gumba.
V preteklosti so morale biti vsebine spustnega menija povezave, vendar to ne velja več za različico 4. Zdaj lahko po želji uporabite <button>elemente v svojih spustnih menijih namesto samo <a>s.
Ustvarite lahko tudi neinteraktivne spustne elemente z .dropdown-item-text. Oblikujte še naprej s CSS po meri ali besedilnimi pripomočki.
Privzeto je spustni meni samodejno postavljen 100 % od vrha in vzdolž leve strani nadrejenega. Dodajte .dropdown-menu-righta .dropdown-menuza poravnavo spustnega menija v desno.
Glavo pokonci! Spustni meniji so postavljeni zahvaljujoč Popper.js (razen če so v vrstici za krmarjenje).
Odzivna poravnava
Če želite uporabiti odzivno poravnavo, onemogočite dinamično pozicioniranje z dodajanjem data-display="static"atributa in uporabite odzivne variacijske razrede.
Če želite poravnati spustni meni z dano ali večjo prelomno točko, dodajte .dropdown-menu{-sm|-md|-lg|-xl}-right.
Če želite levi spustni meni poravnati z dano prelomno točko ali večjo, dodajte .dropdown-menu-rightin .dropdown-menu{-sm|-md|-lg|-xl}-left.
Upoštevajte, da vam ni treba dodati data-display="static"atributa spustnim gumbom v vrsticah za krmarjenje, saj se Popper.js ne uporablja v vrsticah za krmarjenje.
Vsebina menija
Glave
Dodajte glavo, da označite razdelke dejanj v katerem koli spustnem meniju.
Postavite poljubno prosto oblikovano besedilo v spustni meni z besedilom in uporabite pripomočke za razmik . Upoštevajte, da boste za omejitev širine menija verjetno potrebovali dodatne sloge velikosti.
Nekaj primerov besedila, ki je prosto tekoče v spustnem meniju.
In to je bolj primer besedila.
Obrazci
Postavite obrazec v spustni meni ali ga naredite v spustnem meniju in uporabite pripomočke za rob ali oblazinjenje , da mu zagotovite negativni prostor, ki ga potrebujete.
Spustni vtičnik prek podatkovnih atributov ali JavaScripta preklopi skrito vsebino (spustne menije) tako, da preklopi .showrazred na nadrejenem elementu seznama. Atribut data-toggle="dropdown"se uporablja za zapiranje spustnih menijev na ravni aplikacije, zato je dobro, da ga vedno uporabljate.
V napravah, ki podpirajo dotik, odpiranje spustnega menija doda prazne ( $.noop) mouseoverupravljalnike neposrednim podrejenim <body>elementom. Ta nedvomno grdi vdor je potreben, da bi se izognili čudnemu delegiranju dogodkov v sistemu iOS , ki bi sicer preprečil, da bi dotik kjer koli zunaj spustnega menija sprožil kodo, ki zapre spustni meni. Ko je spustni meni zaprt, so ti dodatni prazni mouseoverobdelovalci odstranjeni.
Preko podatkovnih atributov
Dodajte data-toggle="dropdown"na povezavo ali gumb, da preklopite spustni meni.
Prek JavaScripta
Prikličite spustne menije prek JavaScripta:
data-toggle="dropdown"še potrebno
Ne glede na to, ali spustni meni pokličete prek JavaScripta ali namesto tega uporabite data-api, data-toggle="dropdown"mora biti vedno prisoten v sprožilnem elementu spustnega menija.
Opcije
Možnosti je mogoče posredovati prek podatkovnih atributov ali JavaScripta. Za atribute podatkov pripnite ime možnosti v data-, kot v data-offset="".
Ime
Vrsta
Privzeto
Opis
odmik
številka | niz | funkcijo
0
Odmik spustnega menija glede na njegov cilj.
Ko se funkcija uporablja za določanje odmika, se pokliče z objektom, ki vsebuje podatke o odmiku kot prvi argument. Funkcija mora vrniti objekt z enako strukturo. Vozlišče sprožilnega elementa DOM je posredovano kot drugi argument.
Presežna meja omejitve spustnega menija. Sprejema vrednosti 'viewport', 'window', 'scrollParent'ali sklic HTMLElement (samo JavaScript). Za več informacij glejte dokumentacijo PrevenOverflow za Popper.js .
Privzeto uporabljamo Popper.js za dinamično pozicioniranje. Onemogočite to z static.
Upoštevajte , da je slog uporabljen za vsebnik , ko boundaryje nastavljen na katero koli vrednost, ki ni .'scrollParent'position: static.dropdown
Metode
Metoda
Opis
$().dropdown('toggle')
Preklopi spustni meni dane navigacijske vrstice ali navigacije z zavihki.
$().dropdown('show')
Prikaže spustni meni dane navigacijske vrstice ali navigacije z zavihki.
$().dropdown('hide')
Skrije spustni meni dane navigacijske vrstice ali navigacije z zavihki.
$().dropdown('update')
Posodobi položaj spustnega menija elementa.
$().dropdown('dispose')
Uniči spustni meni elementa.
Dogodki
Vsi spustni dogodki se sprožijo pri .dropdown-menunadrejenem elementu in imajo relatedTargetlastnost, katere vrednost je preklopni sidrni element. hide.bs.dropdownin hidden.bs.dropdowndogodki imajo clickEventlastnost (samo če je prvotni tip dogodka click), ki vsebuje objekt dogodka za dogodek klika.
Dogodek
Opis
show.bs.dropdown
Ta dogodek se sproži takoj, ko se pokliče metoda show instance.
shown.bs.dropdown
Ta dogodek se sproži, ko je spustni meni viden uporabniku (čakal bo na prehode CSS, da se dokončajo).
hide.bs.dropdown
Ta dogodek se sproži takoj, ko je bila poklicana metoda hide instance.
hidden.bs.dropdown
Ta dogodek se sproži, ko spustni meni ni več skrit pred uporabnikom (čakal bo na dokončanje prehodov CSS).