Pomocí rozbalovacího pluginu Bootstrap můžete přepínat kontextové překryvy pro zobrazení seznamů odkazů a další.
Přehled
Rozbalovací seznamy jsou přepínatelné, kontextové překryvy pro zobrazení seznamů odkazů a další. Jsou interaktivní pomocí přiloženého JavaScriptového pluginu Bootstrap. Přepínají se kliknutím, nikoli najetím; toto je záměrné rozhodnutí o návrhu .
Rozbalovací seznamy jsou postaveny na knihovně třetí strany, Popper.js , která poskytuje dynamické určování polohy a detekci výřezů. Před JavaScript Bootstrapu nezapomeňte zahrnout popper.min.js nebo použijte bootstrap.bundle.min.js/ bootstrap.bundle.js, který obsahuje Popper.js. Popper.js se nepoužívá k umístění rozevíracích seznamů v navigačních panelech, ačkoli dynamické umístění není vyžadováno.
Standard WAI ARIA definuje skutečný role="menu"widget , ale to je specifické pro nabídky podobné aplikacím, které spouštějí akce nebo funkce. Nabídky ARIA mohou obsahovat pouze položky nabídky, položky nabídky zaškrtávacích políček, položky nabídky přepínačů, skupiny přepínačů a podnabídky.
Na druhou stranu rozbalovací nabídky Bootstrapu jsou navrženy tak, aby byly obecné a použitelné pro různé situace a struktury značek. Je například možné vytvořit rozevírací seznamy, které obsahují další vstupy a ovládací prvky formulářů, jako jsou vyhledávací pole nebo přihlašovací formuláře. Z tohoto důvodu Bootstrap neočekává (ani automaticky nepřidává) žádné z atributů rolea požadovaných pro skutečné nabídky ARIA . Autoři budou muset tyto specifičtější atributy zahrnout sami.aria-
Bootstrap však přidává vestavěnou podporu pro většinu standardních interakcí s nabídkou klávesnice, jako je možnost procházet jednotlivými .dropdown-itemprvky pomocí kurzorových kláves a zavírat nabídku ESCklávesou.
Příklady
Zabalte přepínač rozevíracího seznamu (vaše tlačítko nebo odkaz) a rozbalovací nabídku do .dropdown, nebo jiného prvku, který deklaruje position: relative;. Rozbalovací seznamy lze spouštět z prvků <a>nebo <button>prvků, aby lépe vyhovovaly vašim potenciálním potřebám.
Jediné tlačítko
Jakýkoli singl .btnlze změnit na rozbalovací přepínač s některými změnami značek. Zde je návod, jak je můžete uvést do práce s oběma <button>prvky:
Podobně vytvořte rozbalovací seznamy rozdělených tlačítek s prakticky stejným označením jako rozbalovací seznamy s jedním tlačítkem, ale s přidáním .dropdown-toggle-splitsprávného rozestupu kolem rozbalovací stříšky.
Tuto extra třídu používáme ke snížení horizontály paddingna obou stranách stříšky o 25 % a odstranění toho margin-left, co je přidáno pro běžné rozbalovací nabídky tlačítek. Tyto dodatečné změny udržují stříšku uprostřed rozděleného tlačítka a poskytují vhodnější velikost zásahové oblasti vedle hlavního tlačítka.
Historicky obsah rozbalovací nabídky musely být odkazy, ale to již není případ verze 4. Nyní můžete volitelně použít <button>prvky v rozbalovacích seznamech namísto pouze <a>s.
Můžete také vytvářet neinteraktivní rozevírací položky pomocí .dropdown-item-text. Nebojte se dále stylovat pomocí vlastních CSS nebo textových nástrojů.
Ve výchozím nastavení je rozbalovací nabídka automaticky umístěna 100 % shora a podél levé strany nadřazené položky. Přidat .dropdown-menu-rightdo a .dropdown-menuzarovnat rozbalovací nabídku doprava.
Hlavy vzhůru! Rozbalovací seznamy jsou umístěny díky Popper.js (kromě případů, kdy jsou obsaženy v navigační liště).
Responzivní zarovnání
Pokud chcete použít responzivní zarovnání, zakažte dynamické umístění přidáním data-display="static"atributu a použijte responzivní třídy variací.
Chcete-li rozbalovací nabídku zarovnat vpravo s daným bodem přerušení nebo větším, přidejte .dropdown-menu{-sm|-md|-lg|-xl}-right.
Chcete-li zarovnat levou rozevírací nabídku s daným nebo větším bodem přerušení, přidejte .dropdown-menu-righta .dropdown-menu{-sm|-md|-lg|-xl}-left.
Všimněte si, že k rozevíracím tlačítkům v navbarech nemusíte přidávat data-display="static"atribut, protože Popper.js se v navbarech nepoužívá.
Obsah menu
Záhlaví
Přidejte záhlaví k označení částí akcí v libovolné rozbalovací nabídce.
Umístěte libovolný volný text do rozevírací nabídky s textem a použijte nástroje pro mezery . Všimněte si, že budete pravděpodobně potřebovat další styly velikosti, abyste omezili šířku nabídky.
Nějaký příklad textu, který je volně plynulý v rozbalovací nabídce.
A toto je další ukázkový text.
formuláře
Umístěte formulář do rozevírací nabídky nebo z něj vytvořte rozevírací nabídku a použijte nástroje pro okraje nebo výplň , abyste mu poskytli požadovaný negativní prostor.
Pomocí atributů dat nebo JavaScriptu rozbalovací plugin přepíná skrytý obsah (rozbalovací nabídky) přepínáním .showtřídy na nadřazené položce seznamu. Na data-toggle="dropdown"atribut se spoléhá při zavírání rozevíracích nabídek na úrovni aplikace, takže je dobré jej vždy používat.
Na zařízeních s dotykovým ovládáním přidá otevření rozevíracího seznamu prázdné obslužné rutiny ( $.noop) mouseoverk bezprostředním potomkům <body>prvku. Tento nepochybně ošklivý hack je nezbytný k vyřešení podivnosti v delegování událostí systému iOS , která by jinak zabránila klepnutí kdekoli mimo rozbalovací nabídku ve spuštění kódu, který rozbalovací nabídku zavře. Po zavření rozevíracího seznamu jsou tyto další prázdné mouseoverobslužné nástroje odstraněny.
Prostřednictvím datových atributů
Přidat data-toggle="dropdown"k odkazu nebo tlačítku pro přepínání rozevírací nabídky.
Prostřednictvím JavaScriptu
Vyvolejte rozevírací seznamy pomocí JavaScriptu:
data-toggle="dropdown"stále vyžadováno
Bez ohledu na to, zda zavoláte rozbalovací nabídku prostřednictvím JavaScriptu nebo místo toho použijete rozhraní data-api, data-toggle="dropdown"je vždy vyžadováno, aby byl přítomen na spouštěcím prvku rozbalovací nabídky.
Možnosti
Možnosti lze předávat prostřednictvím atributů dat nebo JavaScriptu. U atributů dat připojte název volby k data-, jako v data-offset="".
název
Typ
Výchozí
Popis
offset
číslo | řetězec | funkce
0
Posun rozevíracího seznamu vzhledem k jeho cíli.
Když je funkce použita k určení offsetu, je volána s objektem obsahujícím offset data jako svůj první argument. Funkce musí vrátit objekt se stejnou strukturou. Uzel DOM spouštěcího prvku je předán jako druhý argument.
V případě překrytí na referenčním prvku povolte rozbalovací nabídku převrátit. Další informace naleznete v dokumentech k převrácení Popper.js .
hranice
řetězec | živel
'scrollParent'
Hranice omezení přetečení rozevírací nabídky. Přijímá hodnoty 'viewport', 'window', 'scrollParent'nebo odkaz HTMLElement (pouze JavaScript). Další informace naleznete v dokumentech preventOverflow Popper.js .
odkaz
řetězec | živel
'přepnout'
Referenční prvek rozbalovací nabídky. Přijímá hodnoty 'toggle', 'parent', nebo odkaz HTMLElement. Další informace naleznete v dokumentech referenceObject Popper.js .
Zobrazit
tětiva
'dynamický'
Ve výchozím nastavení používáme pro dynamické polohování Popper.js. Zakázat to pomocí static.
popperConfig
null | objekt
nula
Chcete-li změnit výchozí konfiguraci Popper.js Bootstrapu, viz Konfigurace Popper.js
Všimněte si, že když boundaryje nastavena na jinou hodnotu než 'scrollParent', styl position: staticse použije na .dropdownkontejner.
Metody
Metoda
Popis
$().dropdown('toggle')
Přepíná rozevírací nabídku daného navigačního panelu nebo navigace na kartách.
$().dropdown('show')
Zobrazuje rozevírací nabídku daného navigačního panelu nebo navigace na kartách.
$().dropdown('hide')
Skryje rozbalovací nabídku daného navigačního panelu nebo navigace na kartách.
$().dropdown('update')
Aktualizuje pozici rozevíracího seznamu prvku.
$().dropdown('dispose')
Zničí rozbalovací nabídku prvku.
Události
Všechny události rozevíracího seznamu se spouštějí u .dropdown-menunadřazeného prvku 's a mají relatedTargetvlastnost, jejíž hodnotou je přepínací prvek kotvy. hide.bs.dropdowna hidden.bs.dropdownudálosti mají clickEventvlastnost (pouze v případě, že původní typ události je click), která obsahuje objekt události pro událost kliknutí.
událost
Popis
show.bs.dropdown
Tato událost se spustí okamžitě, když je zavolána metoda show instance.
shown.bs.dropdown
Tato událost se spustí, když je rozbalovací nabídka viditelná pro uživatele (čeká na dokončení přechodů CSS).
hide.bs.dropdown
Tato událost se spustí okamžitě po zavolání metody skrytí instance.
hidden.bs.dropdown
Tato událost se spustí, když je rozbalovací nabídka skryta před uživatelem (čeká na dokončení přechodů CSS).