Dropdowns
Toggle overlays contextuale per visualizà listi di ligami è più cù u plugin Bootstrap dropdown.
I dropdowns sò toggleable, overlays contextuale per visualizà listi di ligami è più. Sò fatti interattivi cù u plugin JavaScript Bootstrap dropdown inclusu. Sò cambiati clicchendu, micca passandu; Questa hè una decisione di disignu intenzionale.
I dropdowns sò custruiti nantu à una libreria di terzu, Popper.js , chì furnisce u posizionamentu dinamicu è a rilevazione di viewport. Assicuratevi di include popper.min.js prima di JavaScript di Bootstrap o utilizate bootstrap.bundle.min.js
/ bootstrap.bundle.js
chì cuntene Popper.js. Popper.js ùn hè micca utilizatu per pusà i dropdowns in i navbars, perchè u posizionamentu dinamicu ùn hè micca necessariu.
Se custruite u nostru JavaScript da a fonte, hè necessariuutil.js
.
U standard WAI ARIA definisce un role="menu"
widget attuale , ma questu hè specificu per i menu di l'applicazione chì attivanu azioni o funzioni. I menu ARIA ponu cuntene solu voci di menu, voci di menu di checkbox, voci di menu di buttone di radio, gruppi di buttone di radio è sottomenu.
I dropdowns di Bootstrap, invece, sò pensati per esse generici è applicabili à una varietà di situazioni è strutture di marcatura. Per esempiu, hè pussibule di creà menu dropdown chì cuntenenu inputs supplementari è cuntrolli di forma, cum'è campi di ricerca o forme di login. Per quessa, Bootstrap ùn aspetta (nè aghjunghje automaticamente) alcunu di l' role
attributi aria-
necessarii per i veri menu ARIA . L'autori duveranu include sti attributi più specifichi stessi.
Tuttavia, Bootstrap aghjunghje un supportu integratu per a maiò parte di l'interazzione standard di u menu di u teclatu, cum'è a capacità di passà per .dropdown-item
elementi individuali utilizendu i tasti di cursore è chjude u menu cù a ESCchjave.
Imbulighjate u toggle dropdown (u vostru buttone o ligame) è u menù dropdown in .dropdown
, o un altru elementu chì dichjara position: relative;
. I dropdown ponu esse attivati da <a>
o <button>
elementi per adattà megliu à i vostri bisogni potenziali.
Ogni singulu .btn
pò esse trasfurmatu in un toggle dropdown cù qualchi cambiamenti di marcatura. Eccu cumu pudete mette à travaglià cù i dui <button>
elementi:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
È cù <a>
elementi:
<div class="dropdown show">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
A più bona parte hè chì pudete fà questu cù qualsiasi variante di buttone, ancu:
In u listessu modu, creanu menu dropdown di u buttone divisu cù praticamente u listessu marcatu cum'è i dropdowns di u buttone unicu, ma cù l'aghjuntu di .dropdown-toggle-split
per un spaziu propiu intornu à u cursore dropdown.
Adupremu sta classa extra per riduce l'orizontale padding
da ogni latu di u caret da 25% è sguassate l' margin-left
aghjustatu per i menu dropdown regulari. Quelli cambiamenti extra mantenenu u caret centratu in u buttone split è furnisce una zona di hit più apprupriata accantu à u buttone principale.
I buttuni dropdowns funzionanu cù i buttoni di tutte e dimensioni, cumpresi i buttoni dropdown predeterminati è split.
Attiva i menu a tendina sopra l'elementi aghjunghjendu .dropup
à l'elementu parent.
Triggere i menu a tendina à a diritta di l'elementi aghjunghjendu .dropright
à l'elementu parent.
Triggere i menu a tendina à a manca di l'elementi aghjunghjendu .dropleft
à l'elementu parent.
Stòricamente, u cuntenutu di u menù dropdown avia da esse ligami, ma ùn hè più u casu cù v4. Ora pudete opzionalmente aduprà <button>
elementi in i vostri dropdown invece di solu <a>
s.
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
Per automaticamente, un menu dropdown hè automaticamente posizionatu 100% da a cima è longu à u latu manca di u so parente. Aghjunghjite .dropdown-menu-right
à .dropdown-menu
a destra allineate u menù a tendina.
A testa alta ! I dropdowns sò posizionati grazia à Popper.js (eccettu quandu sò cuntenuti in una navbar).
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Right-aligned menu
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
Aghjunghjite un intestazione per etichettate e sezioni di l'azzioni in qualsiasi menu a tendina.
<div class="dropdown-menu">
<h6 class="dropdown-header">Dropdown header</h6>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
</div>
Separate gruppi di elementi di menu cunnessi cù un divisore.
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
Mettite un furmulariu in un menù drop-down, o fate in un menu drop-down, è utilizate utilità di margine o padding per dà u spaziu negativu chì avete bisognu.
<div class="dropdown-menu">
<form class="px-4 py-3">
<div class="form-group">
<label for="exampleDropdownFormEmail1">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword1">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">New around here? Sign up</a>
<a class="dropdown-item" href="#">Forgot password?</a>
</div>
<form class="dropdown-menu p-4">
<div class="form-group">
<label for="exampleDropdownFormEmail2">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail2" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword2">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck2">
<label class="form-check-label" for="dropdownCheck2">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Aghjunghjite .active
à l'articuli in u menù drop-down per stilallu cum'è attivu .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item active" href="#">Active link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Aghjunghjite .disabled
à l'articuli in u menù a tendina per stilallu cum'è disabilitati .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item disabled" href="#">Disabled link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Via attributi di dati o JavaScript, u plugin drop-down cambia u cuntenutu oculatu (menu drop-down) cumminendu a .show
classa nantu à l'elementu di a lista parent. L' data-toggle="dropdown"
attributu hè affidatu per chjude i menu drop-down à u livellu di l'applicazione, cusì hè una bona idea di sempre aduprà.
Nant'à i dispositi abilitati à u toccu, l'apertura di un menu dropdown aghjunghjenu i manipulatori vacanti ( $.noop
) mouseover
à i figlioli immediati di l' <body>
elementu. Stu pirata bruttu di sicuru hè necessariu di travaglià intornu à una stranezza in a delegazione di l'avvenimentu di iOS , chì altrimenti impediscenu un toccu in ogni locu fora di u dropdown da attivà u codice chì chjude u dropdown. Quandu u dropdown hè chjusu, sti gestori vacanti supplementari mouseover
sò eliminati.
Aghjunghjite data-toggle="dropdown"
à un ligame o un buttone per commutà un menu dropdown.
Chjamate i menu dropdown via JavaScript:
data-toggle="dropdown"
sempre necessariu
Indipendentemente da se chjamate u vostru dropdown via JavaScript o invece utilizate l'api di dati, data-toggle="dropdown"
hè sempre necessariu esse presente nantu à l'elementu di attivazione di u dropdown.
L'opzioni ponu esse passate per attributi di dati o JavaScript. Per l'attributi di dati, aghjunghje u nome di l'opzione à data-
, cum'è in data-offset=""
.
Nome | Tipu | Default | Descrizzione |
---|---|---|---|
offset | numeru | stringa | funzione | 0 | Offset di u dropdown relative à u so scopu. Per più infurmazione riferite à Popper.js's offset docs . |
flip | booleanu | veru | Permette à u Dropdown di flip in casu di sovrapposizione nantu à l'elementu di riferimentu. Per più infurmazione, riferite à Popper.js's flip docs . |
cunfini | stringa | elementu | 'scrollParent' | Limite di limitazione di overflow di u menu a tendina. Accetta i valori di 'viewport' , 'window' , 'scrollParent' , o un riferimentu HTMLElement (solu JavaScript). Per più infurmazione riferite à Popper.js's preventOverflow docs . |
Nota quandu boundary
hè stabilitu à qualsiasi valore altru da 'scrollParent'
, u stilu position: static
hè appiicatu à u .dropdown
cuntinuu.
Metudu | Descrizzione |
---|---|
$().dropdown('toggle') |
Commuta u menu a discesa di una determinata barra di navigazione o navigazione a tabulazione. |
$().dropdown('update') |
Aghjurnate a pusizione di u menù dropdown di un elementu. |
$().dropdown('dispose') |
Distrughje u menu dropdown di un elementu. |
Tutti l'avvenimenti drop-down sò sparati à l' .dropdown-menu
elementu parent 's è anu una relatedTarget
pruprietà, chì u valore hè l'elementu di l'ancora basculante.
Avvenimentu | Descrizzione |
---|---|
show.bs.dropdown |
Questu avvenimentu spara immediatamente quandu u metudu di l'istanza di mostra hè chjamatu. |
shown.bs.dropdown |
Questu avvenimentu hè sparatu quandu u dropdown hè statu resu visibile à l'utilizatore (aspittà per e transizioni CSS, per compie). |
hide.bs.dropdown |
Questu avvenimentu hè sparatu immediatamente quandu u metudu di istanza di nasconde hè statu chjamatu. |
hidden.bs.dropdown |
Questu avvenimentu hè sparatu quandu u dropdown hà finitu di esse oculatu da l'utilizatore (aspittarà a transizione CSS, per compie). |