Padajući meni
Prebacite kontekstualne preklapanja za prikaz lista veza i više pomoću padajućeg dodatka Bootstrap.
Pregled
Padajući meni su promenljivi, kontekstualni preklopi za prikaz lista veza i još mnogo toga. Učinjeni su interaktivnim pomoću uključenog Bootstrap padajućeg JavaScript dodatka. Prebacuju se klikom, a ne lebdenjem; ovo je namjerna dizajnerska odluka .
Padajući meni su izgrađeni na biblioteci treće strane, Popper , koja pruža dinamičko pozicioniranje i detekciju okvira prikaza. Obavezno uključite popper.min.js prije Bootstrap-ovog JavaScript-a ili koristite bootstrap.bundle.min.js
/ bootstrap.bundle.js
koji sadrži Popper. Popper se ne koristi za pozicioniranje padajućih menija u navigacijskim trakama, iako dinamičko pozicioniranje nije potrebno.
Ako gradite naš JavaScript iz izvora, on zahtijevautil.js
.
Pristupačnost
WAI ARIA standard definira stvarni role="menu"
widget , ali ovo je specifično za menije nalik aplikacijama koji pokreću akcije ili funkcije . ARIA meniji mogu sadržavati samo stavke menija, stavke menija za potvrdu, stavke menija radio dugmadi, grupe radio dugmadi i podmenije.
Bootstrap-ovi padajući menii, s druge strane, dizajnirani su da budu generički i primjenjivi na različite situacije i strukture označavanja. Na primjer, moguće je kreirati padajuće menije koji sadrže dodatne unose i kontrole obrasca, kao što su polja za pretraživanje ili obrasci za prijavu. Iz tog razloga, Bootstrap ne očekuje (niti automatski dodaje) nijedan od role
i aria-
atributa potrebnih za prave ARIA menije. Autori će morati sami uključiti ove specifičnije atribute.
Međutim, Bootstrap dodaje ugrađenu podršku za većinu standardnih interakcija menija na tastaturi, kao što je mogućnost kretanja kroz pojedinačne .dropdown-item
elemente pomoću tastera sa strelicama i zatvaranje menija pomoću ESCtastera.
Primjeri
Zamotajte prekidač padajućeg menija (vaše dugme ili veza) i padajući meni unutar .dropdown
ili u drugi element koji deklariše position: relative;
. Padajući meni mogu se pokrenuti iz <a>
ili <button>
elemenata kako bi bolje odgovarali vašim potencijalnim potrebama.
Jedno dugme
Bilo koji singl .btn
se može pretvoriti u padajući prekidač uz neke izmjene oznaka. Evo kako ih možete staviti da rade sa bilo kojim <button>
elementom:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Dropdown button
</button>
<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>
</div>
I sa <a>
elementima:
<div class="dropdown">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
Dropdown link
</a>
<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>
</div>
Najbolji dio je što ovo možete učiniti i sa bilo kojom varijantom gumba:
<!-- Example single danger button -->
<div class="btn-group">
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Action
</button>
<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>
</div>
Dugme za razdvajanje
Slično, kreirajte padajuće menije sa podeljenim dugmetom sa bukvalno istim oznakama kao padajuće menije sa jednim dugmetom, ali sa dodatkom .dropdown-toggle-split
za pravilan razmak oko padajućeg kursora.
Koristimo ovu dodatnu klasu da smanjimo horizontalu padding
sa obe strane kursora za 25% i uklonimo ono margin-left
što je dodato za obične padajuće dugme. Te dodatne promjene drže kursor centriranim u podijeljenom gumbu i obezbjeđuju pogodnije područje za pogodak pored glavnog dugmeta.
<!-- Example split danger button -->
<div class="btn-group">
<button type="button" class="btn btn-danger">Action</button>
<button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<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>
</div>
Određivanje veličine
Padajući meni sa dugmadima funkcioniše sa dugmadima svih veličina, uključujući podrazumevane i podeljene padajuće dugmad.
<!-- Large button groups (default and split) -->
<div class="btn-group">
<button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Large button
</button>
<div class="dropdown-menu">
...
</div>
</div>
<div class="btn-group">
<button class="btn btn-secondary btn-lg" type="button">
Large split button
</button>
<button type="button" class="btn btn-lg btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
...
</div>
</div>
<!-- Small button groups (default and split) -->
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
...
</div>
</div>
<div class="btn-group">
<button class="btn btn-secondary btn-sm" type="button">
Small split button
</button>
<button type="button" class="btn btn-sm btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
...
</div>
</div>
Upute
Dropup
Aktivirajte padajuće menije iznad elemenata dodavanjem .dropup
roditeljskom elementu.
<!-- Default dropup button -->
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Dropup
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
<!-- Split dropup button -->
<div class="btn-group dropup">
<button type="button" class="btn btn-secondary">
Split dropup
</button>
<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
Dropright
Pokrenite padajuće menije desno od elemenata dodavanjem .dropright
roditeljskom elementu.
<!-- Default dropright button -->
<div class="btn-group dropright">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Dropright
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
<!-- Split dropright button -->
<div class="btn-group dropright">
<button type="button" class="btn btn-secondary">
Split dropright
</button>
<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropright</span>
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
Dropleft
Aktivirajte padajuće menije na lijevoj strani elemenata dodavanjem .dropleft
roditeljskom elementu.
<!-- Default dropleft button -->
<div class="btn-group dropleft">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Dropleft
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
<!-- Split dropleft button -->
<div class="btn-group">
<div class="btn-group dropleft">
<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropleft</span>
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
</div>
</div>
<button type="button" class="btn btn-secondary">
Split dropleft
</button>
</div>
Stavke menija
Istorijski je sadržaj padajućeg menija morao biti link, ali to više nije slučaj sa v4. Sada možete opciono koristiti <button>
elemente u svojim padajućim izbornikima umjesto samo <a>
s.
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu">
<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>
Također možete kreirati neinteraktivne padajuće stavke sa .dropdown-item-text
. Slobodno dodatno stilizujte sa prilagođenim CSS ili tekstualnim uslužnim programima.
<div class="dropdown-menu">
<span class="dropdown-item-text">Dropdown item text</span>
<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>
Aktivan
Dodajte .active
stavkama u padajućem izborniku da ih stilizirate kao aktivne .
<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>
Onemogućeno
Dodajte .disabled
u stavke u padajućem izborniku da ih stilizirate kao onemogućene .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item disabled">Disabled link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
Poravnanje menija
Podrazumevano, padajući meni se automatski pozicionira 100% od vrha i duž leve strane svog nadređenog. Dodajte .dropdown-menu-right
na .dropdown-menu
desno poravnajte padajući meni.
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" 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>
Responzivno poravnanje
Ako želite koristiti responzivno poravnanje, onemogućite dinamičko pozicioniranje dodavanjem data-display="static"
atributa i koristite klase varijacija koje odgovaraju.
Za poravnanje desnog padajućeg menija sa datom tačkom prekida ili većom, dodajte .dropdown-menu{-sm|-md|-lg|-xl}-right
.
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" data-display="static" aria-expanded="false">
Left-aligned but right aligned when large screen
</button>
<div class="dropdown-menu dropdown-menu-lg-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>
Za poravnanje lijevog padajućeg menija sa datom tačkom prekida ili većom, dodajte .dropdown-menu-right
i .dropdown-menu{-sm|-md|-lg|-xl}-left
.
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" data-display="static" aria-expanded="false">
Right-aligned but left aligned when large screen
</button>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-lg-left">
<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>
Imajte na umu da ne morate da dodajete data-display="static"
atribut padajućim dugmadima u navigacionim trakama, pošto se Popper ne koristi u navigacionim trakama.
Sadržaj menija
Zaglavlja
Dodajte zaglavlje da označite dijelove radnji u bilo kojem padajućem izborniku.
<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>
Razdjelnici
Grupe povezanih stavki menija odvojite pregradama.
<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>
Tekst
Postavite bilo koji tekst slobodnog oblika unutar padajućeg menija sa tekstom i koristite alate za razmak . Imajte na umu da će vam vjerovatno trebati dodatni stilovi veličine kako biste ograničili širinu menija.
<div class="dropdown-menu p-4 text-muted" style="max-width: 200px;">
<p>
Some example text that's free-flowing within the dropdown menu.
</p>
<p class="mb-0">
And this is more example text.
</p>
</div>
Forms
Stavite obrazac u padajući meni ili ga pretvorite u padajući meni i koristite uslužne programe za margine ili padding da biste mu dali negativni prostor koji vam je potreban.
<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-group">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">
Remember me
</label>
</div>
</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-group">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck2">
<label class="form-check-label" for="dropdownCheck2">
Remember me
</label>
</div>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
Padajuće opcije
Koristite data-offset
ili data-reference
da promijenite lokaciju padajućeg izbornika.
<div class="d-flex">
<div class="dropdown mr-1">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false" data-offset="10,20">
Offset
</button>
<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>
</div>
<div class="btn-group">
<button type="button" class="btn btn-secondary">Reference</button>
<button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-expanded="false" data-reference="parent">
<span class="sr-only">Toggle Dropdown</span>
</button>
<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>
</div>
</div>
Upotreba
Preko atributa podataka ili JavaScript-a, padajući dodatak uključuje skriveni sadržaj (padajući meniji) tako što uključuje .show
klasu na roditelju .dropdown-menu
. Atribut data-toggle="dropdown"
se oslanja na zatvaranje padajućih menija na nivou aplikacije, tako da je dobra ideja da ga uvek koristite.
$.noop
)
mouseover
rukovaoce neposrednim potomcima
<body>
elementa. Ovaj, doduše, ružan hak je neophodan da se zaobiđe
čudna greška u delegiranju događaja iOS-a , koja bi inače spriječila da dodir bilo gdje izvan padajućeg menija pokrene kod koji zatvara padajući meni. Kada se padajući meni zatvori, ovi dodatni prazni
mouseover
rukovaoci se uklanjaju.
Preko atributa podataka
Dodajte data-toggle="dropdown"
vezu ili dugme da biste uključili padajući meni.
<div class="dropdown">
<button type="button" data-toggle="dropdown" aria-expanded="false">
Dropdown trigger
</button>
<div class="dropdown-menu">
...
</div>
</div>
Preko JavaScripta
Pozovite padajuće menije putem JavaScripta:
$('.dropdown-toggle').dropdown()
data-toggle="dropdown"
još uvijek potrebno
Bez obzira da li pozivate svoj padajući meni putem JavaScript-a ili umjesto toga koristite data-api, data-toggle="dropdown"
uvijek je potrebno da bude prisutan na okidaču padajućeg izbornika.
Opcije
Opcije se mogu proslijediti putem atributa podataka ili JavaScripta. Za atribute podataka, dodajte naziv opcije u data-
, kao u data-offset=""
.
Ime | Tip | Default | Opis |
---|---|---|---|
offset | broj | string | funkcija | 0 | Pomak padajućeg menija u odnosu na cilj. Kada se funkcija koristi za određivanje pomaka, ona se poziva s objektom koji sadrži podatke o pomaku kao prvi argument. Funkcija mora vratiti objekt sa istom strukturom. Okidač elementa DOM čvor se prosljeđuje kao drugi argument. Za više informacija pogledajte Popperove ofset dokumente . |
flip | boolean | tačno | Dozvolite padajućem izborniku da se okrene u slučaju preklapanja na referentnom elementu. Za više informacija pogledajte Popperove flip dokumente . |
granica | string | element | 'scrollParent' | Prelivanje granice ograničenja padajućeg menija. Prihvata vrijednosti 'viewport' , 'window' , 'scrollParent' , ili reference HTMLElementa (samo JavaScript). Za više informacija pogledajte Popperove preventOverflow dokumente . |
referenca | string | element | 'prebaciti' | Referentni element padajućeg menija. Prihvata vrijednosti 'toggle' , 'parent' , ili reference HTMLElementa. Za više informacija pogledajte Popperove referenceObject docs . |
displej | string | 'dinamičan' | Podrazumevano koristimo Popper za dinamičko pozicioniranje. Onemogućite ovo pomoću static . |
popperConfig | null | objekt | null | Da biste promijenili Bootstrap-ovu zadanu Popper konfiguraciju, pogledajte Popperovu konfiguraciju |
Obratite pažnju kada boundary
je postavljena na bilo koju vrijednost osim 'scrollParent'
, stil position: static
se primjenjuje na .dropdown
kontejner.
Metode
Metoda | Opis |
---|---|
$().dropdown('toggle') |
Prebacuje padajući meni određene navigacijske trake ili navigacije sa karticama. |
$().dropdown('show') |
Prikazuje padajući meni određene navigacijske trake ili navigacije sa karticama. |
$().dropdown('hide') |
Sakriva padajući meni određene navigacijske trake ili navigacije sa karticama. |
$().dropdown('update') |
Ažurira poziciju padajućeg menija elementa. |
$().dropdown('dispose') |
Uništava padajući meni elementa. |
Događaji
Svi padajući događaji se pokreću na .dropdown-menu
roditeljskom elementu 's i imaju relatedTarget
svojstvo, čija je vrijednost preklopni sidreni element. hide.bs.dropdown
i hidden.bs.dropdown
događaji imaju clickEvent
svojstvo (samo kada je izvorni tip događaja click
) koje sadrži objekt događaja za događaj klika.
Događaj | Opis |
---|---|
show.bs.dropdown |
Ovaj događaj se pokreće odmah kada se pozove metoda show instance. |
shown.bs.dropdown |
Ovaj događaj se pokreće kada se padajući meni učini vidljivim korisniku (će čekati da se CSS prijelazi dovrše). |
hide.bs.dropdown |
Ovaj događaj se pokreće odmah kada se pozove metoda skrivanja instance. |
hidden.bs.dropdown |
Ovaj događaj se pokreće kada se padajući meni završi sa sakrivanjem od korisnika (će čekati da se CSS prijelazi dovrše). |
$('#myDropdown').on('show.bs.dropdown', function () {
// do something...
})