Schakel contextuele overlays in voor het weergeven van lijsten met links en meer met de Bootstrap dropdown-plug-in.
Overzicht
Dropdowns zijn schakelbare, contextuele overlays voor het weergeven van lijsten met links en meer. Ze zijn interactief gemaakt met de meegeleverde Bootstrap dropdown JavaScript-plug-in. Ze worden geschakeld door te klikken, niet door te zweven; dit is een opzettelijke ontwerpbeslissing .
Dropdowns zijn gebouwd op een externe bibliotheek, Popper.js , die dynamische positionering en viewport-detectie biedt. Zorg ervoor dat u popper.min.js opneemt vóór Bootstrap's JavaScript of gebruik bootstrap.bundle.min.js/ bootstrap.bundle.jsdat Popper.js bevat. Popper.js wordt niet gebruikt om dropdowns in navigatiebalken te plaatsen, aangezien dynamische positionering niet vereist is.
Als u ons JavaScript vanaf de bron bouwt, isutil.js .
Toegankelijkheid
De WAI ARIA - standaard definieert een echte role="menu"widget , maar dit is specifiek voor toepassingsachtige menu's die acties of functies activeren. ARIA -menu's kunnen alleen menu-items, menu-items met selectievakjes, menu-items met keuzerondjes, groepen met keuzerondjes en submenu's bevatten.
De vervolgkeuzelijsten van Bootstrap zijn daarentegen zo ontworpen dat ze generiek zijn en toepasbaar op verschillende situaties en opmaakstructuren. Het is bijvoorbeeld mogelijk om dropdowns te maken die extra invoer en formulierbesturingselementen bevatten, zoals zoekvelden of inlogformulieren. Om deze reden verwacht Bootstrap geen van de roleen aria-attributen die vereist zijn voor echte ARIA- menu's (en voegt het ook niet automatisch toe). Auteurs zullen deze meer specifieke attributen zelf moeten opnemen.
Bootstrap voegt echter ingebouwde ondersteuning toe voor de meeste standaard toetsenbordmenu-interacties, zoals de mogelijkheid om door afzonderlijke .dropdown-itemelementen te bladeren met behulp van de cursortoetsen en het menu te sluiten met de ESCtoets.
Voorbeelden
Wikkel de schakelaar van de vervolgkeuzelijst (uw knop of link) en het vervolgkeuzemenu in .dropdown, of een ander element dat declareert position: relative;. Dropdowns kunnen worden geactiveerd vanuit <a>of <button>elementen om beter aan uw potentiële behoeften te voldoen.
Enkele knop
Elke single .btnkan worden omgezet in een vervolgkeuzeknop met enkele opmaakwijzigingen. Hier leest u hoe u ze aan het werk kunt zetten met beide <button>elementen:
Maak op dezelfde manier vervolgkeuzemenu's voor gesplitste knoppen met vrijwel dezelfde markeringen als vervolgkeuzelijsten met één knop, maar met de toevoeging van .dropdown-toggle-splitvoor de juiste afstand rond het dropdown-caret.
We gebruiken deze extra klasse om de horizontale lijn paddingaan weerszijden van het dakje met 25% te verminderen en margin-leftde toegevoegde voor normale vervolgkeuzelijsten voor knoppen te verwijderen. Die extra veranderingen houden het caret gecentreerd in de split-knop en zorgen voor een meer geschikt formaat hitgebied naast de hoofdknop.
Historisch gezien moest de inhoud van het dropdownmenu links zijn, maar dat is niet langer het geval met v4. Nu kunt u optioneel <button>elementen in uw vervolgkeuzelijsten gebruiken in plaats van alleen <a>s.
U kunt ook niet-interactieve dropdown-items maken met .dropdown-item-text. Voel je vrij om verder te stylen met aangepaste CSS of teksthulpprogramma's.
Standaard wordt een vervolgkeuzemenu automatisch 100% vanaf de bovenkant en langs de linkerkant van het bovenliggende menu geplaatst. Voeg toe .dropdown-menu-rightaan een .dropdown-menuom het vervolgkeuzemenu rechts uit te lijnen.
Kop op! Dropdowns worden gepositioneerd dankzij Popper.js (behalve wanneer ze in een navigatiebalk staan).
Responsieve uitlijning
Als u responsieve uitlijning wilt gebruiken, schakelt u dynamische positionering uit door het data-display="static"kenmerk toe te voegen en de responsieve variatieklassen te gebruiken.
Om het vervolgkeuzemenu rechts uit te lijnen met het opgegeven breekpunt of groter, voegt u .dropdown-menu{-sm|-md|-lg|-xl}-right.
Om het vervolgkeuzemenu links uit te lijnen met het opgegeven breekpunt of groter, voegt u .dropdown-menu-righten toe .dropdown-menu{-sm|-md|-lg|-xl}-left.
Merk op dat u geen data-display="static"attribuut hoeft toe te voegen aan dropdown-knoppen in navigatiebalken, aangezien Popper.js niet wordt gebruikt in navigatiebalken.
Menu-inhoud
Kopteksten
Voeg een koptekst toe om secties van acties in een vervolgkeuzemenu te labelen.
Plaats een willekeurige tekst in een vervolgkeuzemenu met tekst en gebruik spatiëringshulpprogramma's . Houd er rekening mee dat u waarschijnlijk extra formaatstijlen nodig hebt om de menubreedte te beperken.
Een voorbeeldtekst die vrij kan stromen in het vervolgkeuzemenu.
En dit is meer voorbeeldtekst.
Formulieren
Plaats een formulier in een vervolgkeuzemenu, of maak er een vervolgkeuzemenu van, en gebruik marge- of opvulhulpprogramma's om het de gewenste negatieve ruimte te geven.
Via gegevensattributen of JavaScript schakelt de vervolgkeuzeplug-in verborgen inhoud (vervolgkeuzemenu's) door de .showklasse op het bovenliggende lijstitem te schakelen. Er data-toggle="dropdown"wordt vertrouwd op het kenmerk voor het sluiten van vervolgkeuzemenu's op toepassingsniveau, dus het is een goed idee om het altijd te gebruiken.
Op apparaten met aanraakbediening voegt het openen van een vervolgkeuzelijst lege ( $.noop) mouseoverhandlers toe aan de directe onderliggende elementen van het <body>element. Deze weliswaar lelijke hack is nodig om een gril in de gebeurtenisdelegatie van iOS te omzeilen , die anders zou voorkomen dat een tik ergens buiten de vervolgkeuzelijst de code activeert die de vervolgkeuzelijst sluit. Zodra de vervolgkeuzelijst is gesloten, worden deze extra lege mouseoverhandlers verwijderd.
Via gegevensattributen
Voeg toe data-toggle="dropdown"aan een link of knop om een vervolgkeuzelijst in te schakelen.
Via JavaScript
Roep de vervolgkeuzelijsten op via JavaScript:
data-toggle="dropdown"nog steeds vereist
Ongeacht of u uw vervolgkeuzelijst via JavaScript oproept of in plaats daarvan de data-api gebruikt, data-toggle="dropdown"moet altijd aanwezig zijn op het trigger-element van de vervolgkeuzelijst.
Opties
Opties kunnen worden doorgegeven via data-attributen of JavaScript. Voeg voor gegevensattributen de optienaam toe aan data-, zoals in data-offset="".
Naam
Type
Standaard
Beschrijving
offset
nummer | tekenreeks | functie
0
Offset van de vervolgkeuzelijst ten opzichte van het doel.
Wanneer een functie wordt gebruikt om de offset te bepalen, wordt deze aangeroepen met een object dat de offsetgegevens als eerste argument bevat. De functie moet een object met dezelfde structuur teruggeven. Het triggerelement DOM-knooppunt wordt doorgegeven als het tweede argument.
Raadpleeg voor meer informatie de offset -documenten van Popper.js .
omdraaien
booleaans
WAAR
Laat Dropdown omdraaien in geval van overlapping op het referentie-element. Raadpleeg de flip-docs van Popper.js voor meer informatie .
grens
tekenreeks | element
'scrollOuder'
Overloopbeperkingsgrens van het vervolgkeuzemenu. Accepteert de waarden van 'viewport', 'window', 'scrollParent'of een HTMLElement-referentie (alleen JavaScript). Raadpleeg voor meer informatie de preventOverflow- documenten van Popper.js .
referentie
tekenreeks | element
'schakelaar'
Referentie-element van het vervolgkeuzemenu. Accepteert de waarden van 'toggle', 'parent', of een HTMLElement-referentie. Raadpleeg voor meer informatie de referenceObject -documenten van Popper.js .
Scherm
snaar
'dynamisch'
Standaard gebruiken we Popper.js voor dynamische positionering. Schakel dit uit met static.
Let op wanneer boundaryis ingesteld op een andere waarde dan 'scrollParent', wordt de stijl position: statictoegepast op de .dropdowncontainer.
Methoden:
Methode
Beschrijving
$().dropdown('toggle')
Schakelt het vervolgkeuzemenu van een bepaalde navigatiebalk of navigatie met tabbladen in.
$().dropdown('show')
Toont het vervolgkeuzemenu van een bepaalde navigatiebalk of navigatie met tabbladen.
$().dropdown('hide')
Verbergt het vervolgkeuzemenu van een bepaalde navigatiebalk of navigatie met tabbladen.
$().dropdown('update')
Werkt de positie van de vervolgkeuzelijst van een element bij.
$().dropdown('dispose')
Vernietigt de vervolgkeuzelijst van een element.
Evenementen
Alle dropdown-gebeurtenissen worden geactiveerd op het .dropdown-menubovenliggende element 's en hebben een relatedTargeteigenschap, waarvan de waarde het toggle-ankerelement is. hide.bs.dropdownen hidden.bs.dropdowngebeurtenissen hebben een clickEventeigenschap (alleen wanneer het oorspronkelijke gebeurtenistype is click) die een gebeurtenisobject voor de klikgebeurtenis bevat.
Evenement
Beschrijving
show.bs.dropdown
Deze gebeurtenis wordt onmiddellijk geactiveerd wanneer de methode show instance wordt aangeroepen.
shown.bs.dropdown
Deze gebeurtenis wordt geactiveerd wanneer de vervolgkeuzelijst zichtbaar is gemaakt voor de gebruiker (wacht op CSS-overgangen om te voltooien).
hide.bs.dropdown
Deze gebeurtenis wordt onmiddellijk geactiveerd wanneer de methode hide instance is aangeroepen.
hidden.bs.dropdown
Deze gebeurtenis wordt geactiveerd wanneer de vervolgkeuzelijst is verborgen voor de gebruiker (wacht op CSS-overgangen om te voltooien).