Comutați suprapunerile contextuale pentru afișarea listelor de linkuri și multe altele cu pluginul derulant Bootstrap.
Prezentare generală
Mențiunile derulante sunt suprapuneri contextuale care se pot comuta pentru afișarea listelor de linkuri și multe altele. Sunt făcute interactive cu pluginul JavaScript inclus Bootstrap. Acestea sunt comutate făcând clic, nu prin trecerea cursorului; aceasta este o decizie de proiectare intenționată.
Mențiunile derulante sunt construite pe o bibliotecă terță parte, Popper.js , care oferă poziționare dinamică și detectarea ferestrelor de vizualizare. Asigurați-vă că includeți popper.min.js înainte de JavaScript-ul Bootstrap sau utilizați bootstrap.bundle.min.js/ bootstrap.bundle.jscare conține Popper.js. Popper.js nu este folosit pentru a poziționa meniurile derulante în barele de navigare, deși nu este necesară poziționarea dinamică.
Dacă construiți JavaScript din sursă, este nevoieutil.js de .
Accesibilitate
Standardul WAI ARIArole="menu" definește un widget real , dar acesta este specific meniurilor de tip aplicație care declanșează acțiuni sau funcții. Meniurile ARIA pot conține numai elemente de meniu, elemente de meniu casete de selectare, elemente de meniu cu butoane radio, grupuri de butoane radio și submeniuri.
Mențiunile derulante ale Bootstrap, pe de altă parte, sunt concepute pentru a fi generice și aplicabile unei varietăți de situații și structuri de marcare. De exemplu, este posibil să creați meniuri derulante care conțin intrări suplimentare și controale de formular, cum ar fi câmpuri de căutare sau formulare de conectare. Din acest motiv, Bootstrap nu așteaptă (și nici nu adaugă automat) niciunul dintre atributele roleși aria-necesare pentru meniurile ARIA adevărate. Autorii vor trebui să includă ei înșiși aceste atribute mai specifice.
Cu toate acestea, Bootstrap adaugă suport încorporat pentru majoritatea interacțiunilor standard cu meniul tastaturii, cum ar fi capacitatea de a vă deplasa prin .dropdown-itemelemente individuale folosind tastele cursorului și de a închide meniul cu ESCtasta.
Exemple
Închideți comutatorul drop-down (butonul sau linkul dvs.) și meniul drop-down în .dropdown, sau alt element care declară position: relative;. Dropdown-urile pot fi declanșate de la <a>sau <button>elemente care să se potrivească mai bine nevoilor dumneavoastră potențiale.
Un singur buton
Orice single .btnpoate fi transformat într-un meniu derulant cu unele modificări de markup. Iată cum le puteți pune în funcțiune cu oricare dintre <button>elemente:
În mod similar, creați meniuri derulante cu butoane împărțite cu practic același marcaj ca și meniurile derulante cu un singur buton, dar cu adăugarea de .dropdown-toggle-splitpentru o spațiere adecvată în jurul indicatorului derulant.
Folosim această clasă suplimentară pentru a reduce orizontalul de paddingpe fiecare parte a indicatorului cu 25% și pentru a elimina cele margin-leftadăugate pentru butoanele derulante obișnuite. Aceste modificări suplimentare mențin marcajul centrat în butonul despărțit și oferă o zonă de lovire de dimensiuni mai adecvate lângă butonul principal.
Din punct de vedere istoric, conținutul meniului drop -down trebuia să fie linkuri, dar nu mai este cazul cu v4. Acum puteți utiliza opțional <button>elemente din meniurile dvs. derulante în loc de doar <a>s.
De asemenea, puteți crea elemente derulante non-interactive cu .dropdown-item-text. Simțiți-vă liber să stilați mai mult cu CSS personalizate sau utilitare text.
În mod implicit, un meniu derulant este poziționat automat 100% din partea de sus și de-a lungul părții stângi a părintelui său. Adăugați .dropdown-menu-rightla .dropdown-menua aliniați la dreapta meniul drop-down.
Atenție! Mențiunile derulante sunt poziționate datorită Popper.js (cu excepția cazului în care sunt conținute într-o bară de navigare).
Conținutul meniului
Anteturi
Adăugați un antet pentru a eticheta secțiunile de acțiuni din orice meniu vertical.
Plasați orice text cu formă liberă într-un meniu derulant cu text și utilizați utilitare de spațiere . Rețineți că probabil veți avea nevoie de stiluri de dimensionare suplimentare pentru a limita lățimea meniului.
Câteva exemple de text care curge liber în meniul drop-down.
Și acesta este mai mult exemplu de text.
Forme
Puneți un formular într-un meniu derulant sau transformați-l într-un meniu derulant și utilizați utilități de marjă sau de umplutură pentru a-i oferi spațiul negativ de care aveți nevoie.
Prin atribute de date sau JavaScript, pluginul drop-down comută conținut ascuns (meniuri drop-down) prin comutarea .showclasei pe elementul din lista părinte. Atributul data-toggle="dropdown"se bazează pe închiderea meniurilor drop-down la nivel de aplicație, așa că este o idee bună să îl utilizați întotdeauna.
Pe dispozitivele cu atingere, deschiderea unui meniu drop-down adaugă handlere goale ( $.noop) mouseoverla copiii imediati ai <body>elementului. Acest hack desigur urat este necesar pentru a rezolva o ciudatenie în delegarea evenimentului iOS , care altfel ar împiedica o atingere oriunde în afara meniului derulant să declanșeze codul care închide meniul derulant. Odată ce meniul derulant este închis, acești handlere suplimentare goale mouseoversunt eliminate.
Prin atribute de date
Adăugați data-toggle="dropdown"la un link sau la un buton pentru a comuta un meniu drop-down.
Prin JavaScript
Apelați meniurile derulante prin JavaScript:
data-toggle="dropdown"încă necesar
Indiferent dacă apelați meniul drop-down prin JavaScript sau utilizați în schimb data-api, data-toggle="dropdown"este întotdeauna necesar să fie prezent pe elementul de declanșare al meniului drop-down.
Opțiuni
Opțiunile pot fi transmise prin atribute de date sau JavaScript. Pentru atributele datelor, adăugați numele opțiunii la data-, ca în data-offset="".
Limita constrângerii de depășire a meniului drop-down. Acceptă valorile 'viewport', 'window', 'scrollParent', sau o referință HTMLElement (numai JavaScript). Pentru mai multe informații, consultați documentele preventOverflow ale Popper.js .
În mod implicit, folosim Popper.js pentru poziționarea dinamică. Dezactivați acest lucru cu static.
Rețineți că atunci când boundaryeste setat la orice altă valoare decât 'scrollParent', stilul position: staticeste aplicat .dropdowncontainerului.
Metode
Metodă
Descriere
$().dropdown('toggle')
Comută meniul derulant al unei anumite bare de navigare sau al navigării cu file.
$().dropdown('update')
Actualizează poziția meniului derulant al unui element.
$().dropdown('dispose')
Distruge meniul drop-down al unui element.
Evenimente
Toate evenimentele drop-down sunt declanșate la .dropdown-menuelementul părinte și au o relatedTargetproprietate, a cărei valoare este elementul de ancorare de comutare. hide.bs.dropdowniar hidden.bs.dropdownevenimentele au o clickEventproprietate (doar atunci când tipul de eveniment original este click) care conține un obiect eveniment pentru evenimentul clic.
Eveniment
Descriere
show.bs.dropdown
Acest eveniment se declanșează imediat când este apelată metoda show instance.
shown.bs.dropdown
Acest eveniment este declanșat atunci când meniul derulant a fost făcut vizibil pentru utilizator (va aștepta finalizarea tranzițiilor CSS).
hide.bs.dropdown
Acest eveniment este declanșat imediat când a fost apelată metoda de ascundere a instanței.
hidden.bs.dropdown
Acest eveniment este declanșat când meniul derulant s-a terminat de ascuns utilizatorului (va aștepta finalizarea tranzițiilor CSS).