Pomocou rozbaľovacieho doplnku Bootstrap môžete prepínať kontextové prekrytia na zobrazenie zoznamov odkazov a ďalšie.
Prehľad
Rozbaľovacie zoznamy sú prepínateľné, kontextové prekrytia na zobrazenie zoznamov odkazov a ďalšie. Sú interaktívne vďaka doplnku JavaScript rozbaľovacej ponuky Bootstrap. Prepínajú sa kliknutím, nie umiestnením kurzora myši; ide o zámerné rozhodnutie o dizajne .
Rozbaľovacie zoznamy sú postavené na knižnici tretej strany, Popper.js , ktorá poskytuje dynamické určovanie polohy a detekciu výrezov. Nezabudnite zahrnúť popper.min.js pred JavaScript Bootstrapu alebo použite bootstrap.bundle.min.js/ bootstrap.bundle.jsktorý obsahuje Popper.js. Popper.js sa nepoužíva na umiestnenie rozbaľovacích zoznamov v navigačných paneloch, hoci dynamické určovanie polohy sa nevyžaduje.
Štandard WAI ARIA definuje skutočnú role="menu"miniaplikáciu , ale je to špecifické pre ponuky podobné aplikáciám, ktoré spúšťajú akcie alebo funkcie. Ponuky ARIA môžu obsahovať iba položky ponuky, položky ponuky začiarkavacích políčok, položky ponuky prepínačov, skupiny prepínačov a podponuky.
Na druhej strane rozbaľovacie ponuky Bootstrapu sú navrhnuté tak, aby boli všeobecné a použiteľné v rôznych situáciách a štruktúrach značiek. Napríklad je možné vytvoriť rozbaľovacie zoznamy, ktoré obsahujú ďalšie vstupy a ovládacie prvky formulárov, ako sú vyhľadávacie polia alebo prihlasovacie formuláre. Z tohto dôvodu Bootstrap neočakáva (ani automaticky nepridáva) žiadne z atribútov rolea požadovaných pre skutočné ponuky ARIA . Autori budú musieť zahrnúť tieto konkrétnejšie atribúty sami.aria-
Bootstrap však pridáva vstavanú podporu pre väčšinu štandardných interakcií s ponukami klávesnice, ako je napríklad možnosť prechádzať jednotlivými .dropdown-itemprvkami pomocou kurzorových kláves a zavrieť ponuku ESCklávesom.
Príklady
Zabaľte prepínač rozbaľovacej ponuky (vaše tlačidlo alebo odkaz) a rozbaľovaciu ponuku do .dropdown, alebo iného prvku, ktorý deklaruje position: relative;. Rozbaľovacie zoznamy možno spustiť z prvkov <a>alebo <button>prvkov, aby lepšie vyhovovali vašim potenciálnym potrebám.
Jediné tlačidlo
Akýkoľvek singel .btnmožno zmeniť na rozbaľovací prepínač s niekoľkými zmenami značiek. Tu je návod, ako ich môžete uviesť do prevádzky s oboma <button>prvkami:
Podobne vytvorte rozbaľovacie zoznamy s rozdelenými tlačidlami s prakticky rovnakým označením ako rozbaľovacie zoznamy s jedným tlačidlom, ale s pridaním .dropdown-toggle-splitsprávneho rozmiestnenia okolo rozbaľovacej striešky.
Túto extra triedu používame na zníženie vodorovnej polohy paddingna oboch stranách vsuvky o 25 % a na odstránenie margin-leftpridaných položiek pre bežné rozbaľovacie ponuky. Tieto dodatočné zmeny udržujú striešku vycentrovanú v rozdelenom tlačidle a poskytujú vhodnejšiu oblasť zásahu vedľa hlavného tlačidla.
Historicky obsahom rozbaľovacej ponuky museli byť odkazy, ale to už nie je prípad verzie 4. Teraz môžete voliteľne použiť <button>prvky v rozbaľovacích zoznamoch namiesto iba <a>s.
Môžete tiež vytvoriť neinteraktívne rozbaľovacie položky pomocou .dropdown-item-text. Neváhajte a upravte štýl pomocou vlastného CSS alebo textových nástrojov.
V predvolenom nastavení je rozbaľovacia ponuka automaticky umiestnená 100 % zhora a pozdĺž ľavej strany nadradenej položky. Pridať .dropdown-menu-rightdo a .dropdown-menuzarovnať rozbaľovaciu ponuku doprava.
Hlavy hore! Rozbaľovacie zoznamy sú umiestnené vďaka Popper.js (okrem prípadov, keď sú obsiahnuté v navigačnom paneli).
Responzívne zarovnanie
Ak chcete použiť responzívne zarovnanie, zakážte dynamické umiestňovanie pridaním data-display="static"atribútu a použite responzívne triedy variácií.
Ak chcete zarovnať rozbaľovaciu ponuku vpravo s daným bodom prerušenia alebo väčším, pridajte .dropdown-menu{-sm|-md|-lg|-xl}-right.
Ak chcete zarovnať rozbaľovaciu ponuku doľava s daným bodom prerušenia alebo väčším, pridajte .dropdown-menu-righta .dropdown-menu{-sm|-md|-lg|-xl}-left.
Upozorňujeme, že k rozbaľovacím tlačidlám v navigačných paneloch nemusíte pridávať data-display="static"atribút, pretože Popper.js sa v navigačných paneloch nepoužíva.
Obsah menu
Hlavičky
Pridajte hlavičku na označenie sekcií akcií v ľubovoľnej rozbaľovacej ponuke.
Umiestnite ľubovoľný voľný text do rozbaľovacej ponuky s textom a použite pomôcky na nastavenie medzier . Upozorňujeme, že na obmedzenie šírky ponuky budete pravdepodobne potrebovať ďalšie štýly veľkosti.
Niekoľko príkladov textu, ktorý je voľne plynulý v rozbaľovacej ponuke.
A toto je ďalší príklad textu.
Formuláre
Umiestnite formulár do rozbaľovacej ponuky alebo z neho urobte rozbaľovaciu ponuku a použite pomocné nástroje pre okraje alebo výplň , aby ste mu poskytli požadovaný negatívny priestor.
Pomocou dátových atribútov alebo JavaScriptu rozbaľovací doplnok prepína skrytý obsah (rozbaľovacie ponuky) prepínaním .showtriedy na nadradenej položke zoznamu. Tento data-toggle="dropdown"atribút sa používa pri zatváraní rozbaľovacích ponúk na úrovni aplikácie, takže je dobré ho vždy používať.
Na zariadeniach s dotykovým ovládaním pridá otvorenie rozbaľovacej ponuky k bezprostredným potomkom prvku prázdne obslužné nástroje ( $.noop) . Tento, pravda, škaredý hack je potrebný na obídenie zvláštnosti v delegovaní udalosti v systéme iOS , ktorá by inak zabránila klepnutiu kdekoľvek mimo rozbaľovacej ponuky spustiť kód, ktorý zatvorí rozbaľovaciu ponuku. Po zatvorení rozbaľovacej ponuky sa tieto ďalšie prázdne obslužné nástroje odstránia.mouseover<body>mouseover
Cez dátové atribúty
Pridať data-toggle="dropdown"k odkazu alebo tlačidlu na prepnutie rozbaľovacej ponuky.
Cez JavaScript
Zavolajte rozbaľovacie ponuky pomocou JavaScriptu:
data-toggle="dropdown"stále požadované
Bez ohľadu na to, či zavoláte rozbaľovaciu ponuku prostredníctvom JavaScriptu alebo namiesto toho použijete data-api, data-toggle="dropdown"musí byť vždy prítomná na spúšťacom prvku rozbaľovacej ponuky.
možnosti
Možnosti môžu byť odovzdané prostredníctvom dátových atribútov alebo JavaScriptu. Pre atribúty údajov pripojte názov voľby k data-, ako v data-offset="".
názov
Typ
Predvolené
Popis
offset
číslo | reťazec | funkciu
0
Posun rozbaľovacej ponuky vzhľadom na jej cieľ.
Keď sa funkcia používa na určenie posunu, volá sa s objektom obsahujúcim údaje o posune ako jej prvý argument. Funkcia musí vrátiť objekt s rovnakou štruktúrou. Uzol DOM spúšťacieho prvku sa odovzdá ako druhý argument.
V prípade prekrytia referenčného prvku povoľte rozbaľovaciu ponuku prevrátiť. Ďalšie informácie nájdete v dokumentoch pre popper.js .
hranica
reťazec | prvok
'scrollParent'
Hranica obmedzenia pretečenia rozbaľovacej ponuky. Prijíma hodnoty 'viewport', 'window', 'scrollParent'alebo odkaz HTMLElement (iba JavaScript). Ďalšie informácie nájdete v dokumentoch preventOverflow Popper.js .
odkaz
reťazec | prvok
'toggle'
Referenčný prvok rozbaľovacej ponuky. Prijíma hodnoty 'toggle', 'parent', alebo odkaz HTMLElement. Ďalšie informácie nájdete v dokumentoch referenceObject Popper.js .
displej
reťazec
'dynamic'
Štandardne používame na dynamické polohovanie Popper.js. Zakázať to pomocou static.
Všimnite si, že keď boundaryje nastavená na inú hodnotu ako 'scrollParent', štýl position: staticsa použije na .dropdownkontajner.
Metódy
Metóda
Popis
$().dropdown('toggle')
Prepína rozbaľovaciu ponuku daného navigačného panela alebo navigácie s kartami.
$().dropdown('show')
Zobrazuje rozbaľovaciu ponuku daného navigačného panela alebo navigácie na kartách.
$().dropdown('hide')
Skryje rozbaľovaciu ponuku daného navigačného panela alebo navigácie s kartami.
$().dropdown('update')
Aktualizuje pozíciu rozbaľovacej ponuky prvku.
$().dropdown('dispose')
Zničí rozbaľovaciu ponuku prvku.
Diania
Všetky udalosti rozbaľovacej ponuky sa spúšťajú v .dropdown-menunadradenom prvku 's a majú relatedTargetvlastnosť, ktorej hodnota je prepínací prvok kotvy. hide.bs.dropdowna hidden.bs.dropdownudalosti majú clickEventvlastnosť (iba ak je pôvodný typ udalosti click), ktorá obsahuje objekt udalosti pre udalosť kliknutia.
Udalosť
Popis
show.bs.dropdown
Táto udalosť sa spustí okamžite, keď je zavolaná metóda show instance.
shown.bs.dropdown
Táto udalosť sa spustí, keď sa rozbaľovacia ponuka zobrazí používateľovi (bude čakať na dokončenie prechodov CSS).
hide.bs.dropdown
Táto udalosť sa spustí okamžite po zavolaní metódy skrytia inštancie.
hidden.bs.dropdown
Táto udalosť sa spustí, keď sa rozbaľovacia ponuka skončí skrytím pred používateľom (bude čakať na dokončenie prechodov CSS).