Փոխարկեք համատեքստային ծածկույթները՝ հղումների ցուցակները և ավելին ցուցադրելու համար Bootstrap բացվող հավելվածի միջոցով:
Ընդհանուր ակնարկ
Բացվող պատուհանները փոխարկվող, համատեքստային ծածկույթներ են՝ հղումների ցուցակները և ավելին ցուցադրելու համար: Դրանք ինտերակտիվ են ընդգրկված Bootstrap բացվող JavaScript հավելվածի հետ: Դրանք փոխվում են սեղմելով, ոչ թե սավառնելով. սա միտումնավոր նախագծային որոշում է :
Բացվող պատուհանները կառուցված են երրորդ կողմի գրադարանի վրա՝ Popper.js , որն ապահովում է դինամիկ դիրքավորում և տեսադաշտի հայտնաբերում: Համոզվեք, որ ներառեք popper.min.js-ը Bootstrap-ի JavaScript-ից առաջ կամ օգտագործեք bootstrap.bundle.min.js/ bootstrap.bundle.jsորը պարունակում է Popper.js: Popper.js-ը չի օգտագործվում navbars-ում բացվող ցանկերը տեղադրելու համար, թեև դինամիկ դիրքավորումը չի պահանջվում:
Եթե դուք կառուցում եք մեր JavaScript-ը աղբյուրից, դա պահանջում էutil.js :
Մատչելիություն
WAI ARIA ստանդարտը սահմանում է իրական վիջեթ role="menu", բայց սա հատուկ է հավելվածի նման մենյուներին, որոնք գործարկում են գործողություններ կամ գործառույթներ: ARIA ընտրացանկերը կարող են պարունակել միայն ընտրացանկի տարրեր, վանդակի ընտրացանկի տարրեր, ռադիոկոճակի ընտրացանկի տարրեր, ռադիոկոճակների խմբեր և ենթամենյուներ:
Մյուս կողմից, Bootstrap-ի բացվող ցանկերը նախատեսված են որպես ընդհանուր և կիրառելի տարբեր իրավիճակների և նշագրման կառուցվածքների համար: Օրինակ, հնարավոր է ստեղծել բացվող պատուհաններ, որոնք պարունակում են լրացուցիչ մուտքեր և ձևերի վերահսկում, ինչպիսիք են որոնման դաշտերը կամ մուտքի ձևերը: Այս պատճառով, Bootstrap-ը չի ակնկալում (ոչ ինքնաբերաբար ավելացնում) ARIA մենյուների համար պահանջվող որևէ ատրիբուտ roleև ատրիբուտ: Հեղինակներն իրենք պետք է ներառեն այս ավելի կոնկրետ հատկանիշները:aria-
Այնուամենայնիվ, Bootstrap-ը ներկառուցված աջակցություն է ավելացնում ստեղնաշարի մենյուի ստանդարտ փոխազդեցությունների մեծ մասի համար, ինչպես օրինակ .dropdown-item՝ կուրսորի ստեղներով առանձին տարրերով շարժվելու և մենյուը ESCստեղնով փակելու հնարավորությունը:
Օրինակներ
Փաթեթավորեք բացվող ընտրացանկը (ձեր կոճակը կամ հղումը) և բացվող ընտրացանկը .dropdownկամ մեկ այլ տարր, որը հայտարարում է position: relative;: Բացվող ցանկերը կարող են գործարկվել <a>կամ <button>տարրերից, որոնք ավելի լավ են համապատասխանում ձեր հնարավոր կարիքներին:
Մեկ կոճակ
Ցանկացած սինգլ .btnկարող է վերածվել բացվող անջատիչի՝ որոշ նշագծման փոփոխություններով: Ահա, թե ինչպես կարող եք դրանք աշխատել երկու <button>տարրերի հետ.
Նմանապես, ստեղծեք պառակտված կոճակների բացվող պատուհաններ գրեթե նույն նշագծումով, ինչ մեկ կոճակի բացվող պատուհանները, բայց .dropdown-toggle-splitբացվող տուփի շուրջը պատշաճ տարածության համար ավելացրե՛ք:
Մենք օգտագործում ենք այս հավելյալ դասը՝ 25%-ով կրճատելու paddingերեսպատման երկու կողմերում գտնվող հորիզոնականը և հեռացնելու այն margin-left, որն ավելացվել է կոճակների սովորական բացման համար: Այդ հավելյալ փոփոխությունները պահում են խցիկը կենտրոնացած պառակտման կոճակի վրա և ապահովում են ավելի համապատասխան չափի հարվածային տարածք հիմնական կոճակի կողքին:
Պատմականորեն բացվող ընտրացանկի բովանդակությունը պետք է լիներ հղումներ, բայց դա այլևս այդպես չէ v4-ի դեպքում: Այժմ դուք կարող եք կամայականորեն օգտագործել <button>տարրեր ձեր իջնող ցանկերում՝ պարզապես <a>s-ի փոխարեն:
Դուք կարող եք նաև ստեղծել ոչ ինտերակտիվ բացվող տարրեր .dropdown-item-text. Ազատ զգալ ոճավորել հատուկ CSS կամ տեքստային կոմունալ ծառայություններ:
Լռելյայնորեն, բացվող ընտրացանկը ավտոմատ կերպով տեղադրվում է 100% վերևից և իր ծնողի ձախ կողմում: Ավելացնել .dropdown-menu-righta-ին .dropdown-menuդեպի աջ հավասարեցնել բացվող ընտրացանկը:
Գլուխը վեր Բացվող պատուհանները տեղադրվում են Popper.js-ի շնորհիվ (բացառությամբ այն դեպքերի, երբ դրանք պարունակվում են navbar-ում):
Պատասխանատու հավասարեցում
Եթե ցանկանում եք օգտագործել արձագանքող հավասարեցում, անջատեք դինամիկ դիրքավորումը՝ ավելացնելով data-display="static"հատկանիշը և օգտագործեք արձագանքող տատանումների դասերը:
Բացվող ընտրացանկը տրված կամ ավելի մեծ կետի հետ հավասարեցնելու համար.dropdown-menu{-sm|-md|-lg|-xl}-right ավելացրեք :
Ձախ բացվող ընտրացանկը տվյալ բեկման կետի կամ ավելի մեծ կետի հետ հավասարեցնելու համար ավելացրեք .dropdown-menu-rightև .dropdown-menu{-sm|-md|-lg|-xl}-left.
Նկատի ունեցեք, որ ձեզ հարկավոր չէ data-display="static"ատրիբուտ ավելացնել navbars-ի բացվող կոճակներին, քանի որ Popper.js-ը չի օգտագործվում navbars-ում:
Ցանկի բովանդակությունը
Վերնագրեր
Ցանկացած բացվող ընտրացանկում գործողությունների բաժինները պիտակավորելու համար ավելացրեք վերնագիր:
Տեղադրեք ցանկացած ազատ ձևի տեքստ տեքստով բացվող ընտրացանկի մեջ և օգտագործեք տարածության կոմունալ ծառայություններ : Նկատի ունեցեք, որ մենյուի լայնությունը սահմանափակելու համար ձեզ ամենայն հավանականությամբ անհրաժեշտ կլինեն չափերի լրացուցիչ ոճեր:
Որոշ օրինակ տեքստ, որն ազատորեն հոսում է բացվող ընտրացանկում:
Տվյալների ատրիբուտների կամ JavaScript-ի միջոցով բացվող հավելվածը փոխում է թաքնված բովանդակությունը (բացվող ընտրացանկերը)՝ փոխելով .showդասը մայր ցանկի տարրի վրա: Հատկանիշը data-toggle="dropdown"հիմնվում է հավելվածի մակարդակով բացվող ընտրացանկերը փակելու համար, ուստի լավ գաղափար է միշտ օգտագործել այն:
Հպման հնարավորություն ունեցող սարքերում բացվող ցանկը ավելացնում է դատարկ ( $.noop) մշակիչներ տարրի mouseoverանմիջական երեխաներին : <body>Այս, անկասկած, տգեղ հաքերն անհրաժեշտ է iOS-ի իրադարձությունների պատվիրակության տարօրինակությունը լուծելու համար , որը հակառակ դեպքում կկանխի բացվող ցանկից դուրս ցանկացած վայրում հպումը գործարկելու այն կոդը, որը փակում է բացվող ցանկը: Երբ բացվող ցանկը փակվի, այս լրացուցիչ դատարկ mouseoverմշակիչները հեռացվում են:
Տվյալների ատրիբուտների միջոցով
Ավելացրեք data-toggle="dropdown"հղմանը կամ կոճակին՝ բացվող ցանկը փոխարկելու համար:
JavaScript-ի միջոցով
Զանգահարեք բացվող ցանկերը JavaScript-ի միջոցով.
data-toggle="dropdown"դեռ պահանջվում է
Անկախ նրանից՝ զանգում եք ձեր բացվող ցանկը JavaScript-ի միջոցով, թե փոխարենը օգտագործում եք տվյալների api-ն, data-toggle="dropdown"միշտ պահանջվում է ներկա լինել բացվող ցանկի գործարկման տարրում:
Ընտրանքներ
Ընտրանքները կարող են փոխանցվել տվյալների ատրիբուտների կամ JavaScript-ի միջոցով: Տվյալների ատրիբուտների համար ավելացրեք տարբերակի անունը data-, ինչպես data-offset="".
Անուն
Տիպ
Կանխադրված
Նկարագրություն
օֆսեթ
համարը | լարային | ֆունկցիան
0
Բացվող ցանկի օֆսեթ՝ իր թիրախի համեմատ:
Երբ ֆունկցիան օգտագործվում է օֆսեթը որոշելու համար, այն կանչվում է՝ որպես առաջին արգումենտ պարունակող օֆսեթ տվյալները: Ֆունկցիան պետք է վերադարձնի նույն կառուցվածքով օբյեկտ: Գործարկող տարրը DOM հանգույցը փոխանցվում է որպես երկրորդ արգումենտ:
Լրացուցիչ տեղեկությունների համար տես Popper.js-ի օֆսեթ փաստաթղթերը :
մատով խփել
բուլյան
ճիշտ
Թույլատրել բացվող պատուհանին շրջել հղման տարրի վրա համընկնման դեպքում: Լրացուցիչ տեղեկությունների համար տե՛ս Popper.js-ի շրջադարձային փաստաթղթերը :
սահման
լարային | տարր
«scrollParent»
Բացվող ընտրացանկի հորդառատ սահմանափակման սահմանը: Ընդունում է 'viewport', 'window', 'scrollParent', կամ HTMLElement հղումի արժեքները (միայն JavaScript): Լրացուցիչ տեղեկությունների համար տես Popper.js-ի preventOverflow փաստաթղթերը :
հղում
լարային | տարր
«փոխարկել»
Բացվող ընտրացանկի տեղեկատու տարր: Ընդունում է 'toggle', 'parent', կամ HTMLElement հղումի արժեքները: Լրացուցիչ տեղեկությունների համար տես Popper.js-ի referenceObject docs-ը :
ցուցադրել
լար
«դինամիկ»
Լռելյայնորեն մենք օգտագործում ենք Popper.js դինամիկ դիրքավորման համար: Անջատեք սա static.
Ուշադրություն դարձրեք, երբ boundaryսահմանվում է որևէ այլ արժեք, քան 'scrollParent', ոճը position: staticկիրառվում է .dropdownկոնտեյների վրա:
Մեթոդներ
Մեթոդ
Նկարագրություն
$().dropdown('toggle')
Անջատում է տվյալ նավագոտու կամ ներդիրներով նավիգացիայի բացվող ընտրացանկը:
$().dropdown('show')
Ցույց է տալիս տվյալ նավագոտու կամ ներդիրներով նավիգացիայի բացվող ընտրացանկը:
$().dropdown('hide')
Թաքցնում է տվյալ նավագոտու կամ ներդիրներով նավիգացիայի բացվող ընտրացանկը:
$().dropdown('update')
Թարմացնում է տարրի բացվող ցանկի դիրքը:
$().dropdown('dispose')
Ոչնչացնում է տարրի բացվող ցանկը:
Իրադարձություններ
Բոլոր իջնող իրադարձությունները գործարկվում են .dropdown-menu'-ի մայր տարրի վրա և ունեն relatedTargetհատկություն, որի արժեքը փոխարկվող խարիսխի տարրն է: hide.bs.dropdownիսկ hidden.bs.dropdownիրադարձությունները ունեն clickEventհատկություն (միայն այն դեպքում, երբ սկզբնական իրադարձության տեսակն է click), որը պարունակում է Իրադարձության օբյեկտ սեղմման իրադարձության համար:
Իրադարձություն
Նկարագրություն
show.bs.dropdown
Այս իրադարձությունն անմիջապես գործարկվում է, երբ կանչվում է ցուցադրման օրինակի մեթոդը:
shown.bs.dropdown
Այս իրադարձությունը գործարկվում է, երբ բացվող ցանկը տեսանելի է դառնում օգտատիրոջը (կսպասի CSS անցումների ավարտին):
hide.bs.dropdown
Այս իրադարձությունը գործարկվում է անմիջապես, երբ կանչվում է թաքցնել օրինակի մեթոդը:
hidden.bs.dropdown
Այս իրադարձությունը գործարկվում է, երբ բացվող ցանկն ավարտվում է օգտագործողից թաքցնելու համար (կսպասի CSS անցումների ավարտին):