A Bootstrap legördülő beépülő modullal átkapcsolhatja a kontextus szerinti fedvényeket a hivatkozások és egyebek listájának megjelenítéséhez.
Áttekintés
A legördülő menük váltogathatók, kontextuális fedvények a hivatkozáslisták és egyebek megjelenítéséhez. Interaktívvá teszik őket a mellékelt Bootstrap legördülő JavaScript beépülő modullal. Kattintással válthatók, nem lebegéssel; ez szándékos tervezési döntés .
A legördülő listák egy harmadik féltől származó könyvtárra, a Popper.js -re épülnek , amely dinamikus pozicionálást és nézetablak észlelést biztosít. Feltétlenül szerepeltesse a popper.min.js fájlt a Bootstrap JavaScriptje előtt, vagy használja a bootstrap.bundle.min.js/ bootstrap.bundle.js-t, amely tartalmazza a Popper.js-t. A Popper.js-t nem használják a navigációs sávok legördülő menüinek elhelyezésére, mivel nincs szükség dinamikus pozicionálásra.
Ha a JavaScriptet forrásból készíti, akkor ehhezutil.js .
Megközelíthetőség
A WAI ARIA szabvány egy tényleges role="menu"widgetet határoz meg , de ez kifejezetten az alkalmazásszerű menükre vonatkozik, amelyek műveleteket vagy funkciókat indítanak el. Az ARIA menük csak menüelemeket, jelölőnégyzet menüelemeket, választógomb menüelemeket, választógomb csoportokat és almenüket tartalmazhatnak.
A Bootstrap legördülő menüi viszont általánosak, és különféle helyzetekben és jelölési struktúrákban alkalmazhatók. Például lehetőség van olyan legördülő menük létrehozására, amelyek további bemeneteket és űrlapvezérlőket tartalmaznak, például keresőmezőket vagy bejelentkezési űrlapokat. Emiatt a Bootstrap nem várja el (és nem adja hozzá automatikusan) a valódi ARIA - menükhöz szükséges roleés attribútumokat. A szerzőknek maguknak kell megadniuk ezeket a konkrétabb attribútumokat.aria-
A Bootstrap azonban beépített támogatást ad a legtöbb szabványos billentyűzet-menü interakcióhoz, például az egyes .dropdown-itemelemek között a kurzorbillentyűk használatával való mozgáshoz és a menü bezárásához a ESCgombbal.
Példák
Tekerje körbe a legördülő menü kapcsolóját (a saját gombját vagy hivatkozását) és a legördülő menüt a .dropdown, vagy egy másik elembe, amely deklarálja a position: relative;. Legördülő menük indíthatók a <a>vagy <button>elemekből, hogy jobban megfeleljenek az Ön lehetséges igényeinek.
Egyetlen gomb
Bármelyik .btnegy legördülő kapcsolóvá alakítható néhány jelölésmódosítással. A következőképpen helyezheti őket működésre bármelyik <button>elemmel:
Hasonlóképpen hozzon létre osztott gombos legördülő listákat, gyakorlatilag ugyanazzal a jelöléssel, mint az egygombos legördülő menük, de a .dropdown-toggle-splitmegfelelő távolság érdekében a legördülő menü körül.
Ezt az extra osztályt arra használjuk, paddinghogy 25%-kal csökkentsük a vízszintes szöget a kazetta mindkét oldalán, és eltávolítsuk a margin-leftszokásos gombok legördülő menüihez hozzáadott elemet. Ezek az extra változtatások az osztógomb közepén tartják a mutatót, és megfelelőbb méretű találati területet biztosítanak a fő gomb mellett.
Történelmileg a legördülő menü tartalmának linkeknek kellett lenniük, de ez már nem így van a v4 esetében. Mostantól opcionálisan <button>elemeket is használhat a legördülő menükben az s helyett <a>.
A segítségével nem interaktív legördülő elemeket is létrehozhat .dropdown-item-text. Nyugodtan alakíthat tovább stílust egyéni CSS- vagy szöveges segédprogramokkal.
Alapértelmezés szerint a legördülő menü automatikusan 100%-ban a fölé és bal oldala mentén helyezkedik el. Add hozzá .dropdown-menu-righta .dropdown-menujobbra igazításhoz a legördülő menüt.
Fel a fejjel! A legördülő menük elhelyezése a Popper.js-nek köszönhető (kivéve, ha a navigációs sávban találhatók).
Reszponzív igazítás
Ha reszponzív igazítást szeretne használni, tiltsa le a dinamikus pozicionálást az data-display="static"attribútum hozzáadásával, és használja az adaptív variációs osztályokat.
Ha a legördülő menüt az adott vagy nagyobb törésponthoz szeretné igazítani , adja hozzá a következőt .dropdown-menu{-sm|-md|-lg|-xl}-right:
Ha a bal oldali legördülő menüt az adott törésponthoz vagy nagyobbhoz szeretné igazítani , adja hozzá a .dropdown-menu-rightés a gombot .dropdown-menu{-sm|-md|-lg|-xl}-left.
Vegye figyelembe, hogy nem kell data-display="static"attribútumot hozzáadnia a navigációs sávok legördülő gombjaihoz, mivel a Popper.js fájlt nem használják a navigációs sávokban.
Menü tartalma
Fejlécek
Adjon hozzá fejlécet a műveletek szakaszainak címkézéséhez bármely legördülő menüben.
Helyezzen el bármilyen szabad formájú szöveget egy szöveges legördülő menübe, és használja a térközkezelő segédprogramokat . Vegye figyelembe, hogy valószínűleg további méretezési stílusokra lesz szüksége a menü szélességének korlátozásához.
Néhány példa szöveg, amely szabadon áramlik a legördülő menüben.
És ez inkább példaszöveg.
Űrlapok
Helyezzen egy űrlapot egy legördülő menübe, vagy tegye azt legördülő menüvé, és használja a margót vagy a kitöltő segédprogramokat , hogy megadja a kívánt negatív helyet.
Adatattribútumokon vagy JavaScripten keresztül a legördülő beépülő modul átkapcsolja a rejtett tartalmat (legördülő menük) az .showosztály átváltásával a szülőlistaelemen. Az data-toggle="dropdown"attribútumra támaszkodik a legördülő menük alkalmazásszintű bezárásához, ezért célszerű mindig használni.
Érintésképes eszközökön a legördülő menü megnyitása üres ( $.noop) mouseoverkezelőket ad hozzá az <body>elem közvetlen gyermekeihez. Erre a bevallottan csúnya feltörésre azért van szükség, hogy megkerüljük az iOS esemény-delegálásának egy furcsaságát , amely egyébként megakadályozná, hogy a legördülő menün kívüli bármely koppintás elindítsa a legördülő listát bezáró kódot. A legördülő menü bezárása után ezek a további üres mouseoverkezelők eltávolításra kerülnek.
Adatattribútumokon keresztül
Hozzáadás data-toggle="dropdown"hivatkozáshoz vagy gombhoz a legördülő menü váltásához.
JavaScripten keresztül
A legördülő menük meghívása JavaScripten keresztül:
data-toggle="dropdown"továbbra is szükséges
Függetlenül attól, hogy JavaScript-en keresztül hívja-e meg a legördülő menüt, vagy inkább a data-api-t használja, data-toggle="dropdown"mindig jelen kell lennie a legördülő menü trigger elemén.
Lehetőségek
Az opciók átadhatók adatattribútumokon vagy JavaScripten keresztül. Az adatattribútumokhoz fűzze hozzá az opció nevét a data-következőhöz: data-offset="".
Név
típus
Alapértelmezett
Leírás
beszámítás
szám | húr | funkció
0
A legördülő menü eltolása a célhoz képest. További információkért tekintse meg a Popper.js offset dokumentumait .
flip
logikai érték
igaz
Engedélyezze a legördülő menü átfordulását, ha átfedés van a referenciaelemen. További információkért tekintse meg a Popper.js flip docs -ját .
határ
húr | elem
'scrollParent'
A legördülő menü túlcsordulási kényszerhatára. Elfogadja a 'viewport', 'window', 'scrollParent', vagy a HTMLElement hivatkozás értékeit (csak JavaScript). További információkért tekintse meg a Popper.js preventOverflow dokumentumait .
referencia
húr | elem
'váltó'
A legördülő menü hivatkozási eleme. Elfogadja a 'toggle', 'parent', vagy egy HTMLElement hivatkozás értékeit. További információkért tekintse meg a Popper.js referenciaobjektumdokumentumait .
kijelző
húr
'dinamikus'
Alapértelmezés szerint a Popper.js-t használjuk a dinamikus pozicionáláshoz. Tiltsa le ezt a segítségével static.
Ne feledje, ha boundaryaz értéktől eltérő értékre van állítva 'scrollParent', akkor a stílus a tárolóra position: statickerül alkalmazásra ..dropdown
Mód
Módszer
Leírás
$().dropdown('toggle')
Bekapcsolja az adott navigációs sáv vagy lapos navigáció legördülő menüjét.
$().dropdown('show')
Megjeleníti egy adott navigációs sáv vagy lapos navigáció legördülő menüjét.
$().dropdown('hide')
Elrejti az adott navigációs sáv vagy lapos navigáció legördülő menüjét.
$().dropdown('update')
Frissíti egy elem legördülő menüjének pozícióját.
$().dropdown('dispose')
Elpusztítja egy elem legördülő menüjét.
Események
Minden legördülő esemény a .dropdown-menuszülőelemnél aktiválódik, és van egy relatedTargettulajdonsága, amelynek értéke a kapcsoló horgonyelem. hide.bs.dropdownés hidden.bs.dropdownaz eseményeknek van egy clickEventtulajdonsága (csak akkor, ha az eredeti eseménytípus click), amely egy eseményobjektumot tartalmaz a kattintási eseményhez.
Esemény
Leírás
show.bs.dropdown
Ez az esemény azonnal aktiválódik, amikor a show példány metódus meghívódik.
shown.bs.dropdown
Ez az esemény akkor aktiválódik, amikor a legördülő menü láthatóvá vált a felhasználó számára (megvárja a CSS-átmenetek befejezését).
hide.bs.dropdown
Ez az esemény azonnal aktiválódik, amikor a példány elrejtése metódus meghívásra került.
hidden.bs.dropdown
Ez az esemény akkor aktiválódik, amikor a legördülő menü elrejtése befejeződött a felhasználó elől (megvárja a CSS-átmenetek befejezését).