Bootstrap ачылуучу плагини менен шилтемелердин тизмелерин жана башкаларды көрсөтүү үчүн контексттик катмарларды которуштуруу.
Обзор
Ашылма тизмелер шилтемелердин тизмесин жана башкаларды көрсөтүү үчүн которула турган, контексттик катмарлар. Алар камтылган Bootstrap ачылуучу JavaScript плагини менен интерактивдүү жасалды. Алар чычкан менен эмес, чыкылдатуу менен которулат; Бул атайылап долбоорлоо чечими .
Үчүнчү тараптын Popper.js китепканасында ачылуучу тизмелер түзүлөт , ал динамикалык жайгашууну жана көрүү терезесин аныктоону камсыз кылат. Bootstrap'тин JavaScript'инен мурун popper.min.js камтууну унутпаңыз же Popper.js камтылган bootstrap.bundle.min.js/ колдонуңуз. bootstrap.bundle.jsPopper.js динамикалык жайгаштыруу талап кылынбагандыктан, навигация тилкелеринде ачылуучу тизмелерди жайгаштыруу үчүн колдонулбайт.
Эгер сиз биздин 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ачылуучу каретанын айланасында туура аралыкты кошуу менен бөлүнгөн баскычтарды түзүңүз.
Биз бул кошумча классты каретканын paddingэки тарабындагы горизонталдыкты 25% кыскартуу жана margin-leftкадимки баскычтар үчүн кошулгандарды алып салуу үчүн колдонобуз. Бул кошумча өзгөртүүлөр каретаны бөлүү баскычынын ортосунда кармап турат жана негизги баскычтын жанында ылайыктуураак өлчөмдү камсыз кылат.
Тарыхый жактан ачылуучу менюнун мазмуну шилтемелер болушу керек болчу , бирок v4 менен андай болбой калды. Эми сиз жөн гана s <button>ордуна ылдый түшүүчү элементтерди колдонсоңуз болот .<a>
Сиз ошондой эле менен интерактивдүү эмес ачылуучу элементтерди түзө аласыз .dropdown-item-text. Ыңгайлаштырылган CSS же тексттик утилиталар менен стилди тартыңыз.
Демейки боюнча, ылдый түшүүчү меню автоматтык түрдө ата-эненин жогору жагында жана сол жагында 100% жайгаштырылат. Түзүлүүчү менюну оңго тегиздөө .dropdown-menu-right..dropdown-menu
Көңүл бургула! Ашылма тизмелер Popper.js аркасында жайгаштырылат (алар навигация тилкесинде камтылгандан тышкары).
Жооптуу тегиздөө
Эгерде сиз жооп берүүчү тегиздөөнү колдонгуңуз келсе, data-display="static"атрибутту кошуу менен динамикалык позициялоону өчүрүңүз жана жооп берүүчү вариация класстарын колдонуңуз.
Түзүлүүчү менюну берилген үзгүлтүккө же андан чоңураак оңго тегиздөө үчүн кошуңуз .dropdown-menu{-sm|-md|-lg|-xl}-right.
Сол ылдый түшүүчү менюну берилген ажыратуу чекитине же андан чоңураак тегиздөө үчүн .dropdown-menu-rightжана кошуңуз .dropdown-menu{-sm|-md|-lg|-xl}-left.
data-display="static"Поппер.js навигация тилкелеринде колдонулбагандыктан, навигация тилкелериндеги ачылуучу баскычтарга атрибут кошуунун кереги жок экенин эске алыңыз.
Меню мазмуну
Баштар
Каалаган түшүүчү менюдагы аракеттердин бөлүмдөрүн белгилөө үчүн башты кошуңуз.
Каалаган эркин форматтагы текстти тексти бар ылдый түшүүчү менюга жайгаштырыңыз жана аралыкты колдонуу утилиталарын колдонуңуз . Менюнун туурасын чектөө үчүн сизге кошумча өлчөм стилдери керек болорун эске алыңыз.
Ашылма менюда эркин агып жаткан кээ бир мисал тексти.
.showМаалымат атрибуттары же JavaScript аркылуу ачылуучу плагин ата-энелик тизмедеги классты которуштуруу менен жашыруун мазмунду (ашылма менюлар) которушат . Атрибут data-toggle="dropdown"колдонмо деңгээлинде ылдый түшүүчү менюларды жабууга таянат, андыктан аны дайыма колдонуу жакшы идея.
Тийүү иштетилген түзмөктөрдө, ачылуучу тизмени ачуу элементтин дароо балдарына бош ( $.noop) иштеткичтерди кошот. Ырас, бул жийиркеничтүү бузукулук iOS'тун иш-чара делегациясындагы кызыкчылыктын тегерегинде иштөө үчүн зарыл, антпесе, ачылуучу тизмеден тышкаркы каалаган жерди таптап, ачылуучу тизмени жапкан кодду иштетпейт. Ашылма тизме жабылгандан кийин, бул кошумча бош иштеткичтер алынып салынат.mouseover<body>mouseover
Маалымат атрибуттары аркылуу
Шилтемеге кошуңуз data-toggle="dropdown"же ачылуучу тизмени которуштуруу үчүн баскычты басыңыз.
JavaScript аркылуу
JavaScript аркылуу ачылуучу тизмелерге чалыңыз:
data-toggle="dropdown"дагы эле талап кылынат
Сиз JavaScript аркылуу ачылуучу тизмеңизге чалсаңыз же анын ордуна data-api колдонсоңуз да, data-toggle="dropdown"дайыма ачылуучу тизменин триггер элементинде болушу талап кылынат.
Параметрлер
Параметрлер маалымат атрибуттары же JavaScript аркылуу берилиши мүмкүн. Дайындардын атрибуттары үчүн параметрдин атын data-, сыяктуу эле кошуңуз data-offset="".
аты
Type
Демейки
Description
офсет
саны | string | функция
0
Ашылма тизменин максаттуу көрсөткүчүнө салыштырмалуу жылышы. Көбүрөөк маалымат алуу үчүн Popper.js'тин офсет документтерине кайрылыңыз .
айлануу
логикалык
чын
Маалымдама элементи бири-бирине дал келген учурда, Ашылма ылдыйга айланууга уруксат бериңиз. Көбүрөөк маалымат алуу үчүн Popper.js'тин flip docs караңыз .
чек ара
string | элемент
'scrollParent'
Ашылма менюнун ашыкча чектөө чек арасы. 'viewport', 'window', 'scrollParent', же HTMLElement шилтемесинин маанилерин кабыл алат (JavaScript гана). Көбүрөөк маалымат алуу үчүн Popper.js'тин preventOverflow документтерине кайрылыңыз .
шилтеме
string | элемент
'которуу'
Ашылма менюнун маалымдама элементи. 'toggle', 'parent'же HTMLElement шилтеменин маанилерин кабыл алат . Көбүрөөк маалымат алуу үчүн Popper.js'тин referenceObject документтерине кайрылыңыз .
көрсөтүү
сап
'динамикалык'
Демейки боюнча, динамикалык жайгаштыруу үчүн Popper.js колдонобуз. Муну менен өчүрүңүз static.
Качан boundaryбашка мааниге коюлса 'scrollParent', стил контейнерге position: staticколдонулат ..dropdown
Методдор
Метод
Description
$().dropdown('toggle')
Берилген навигация тилкесинин же өтмөктүү навигациянын ылдый түшүүчү менюну өчүрөт.
$().dropdown('show')
Берилген навигация тилкесинин же өтмөктүү навигациянын ылдый түшүүчү менюну көрсөтөт.
$().dropdown('hide')
Берилген навигация тилкесинин же өтмөктүү навигациянын ачылуучу менюну жашырат.
$().dropdown('update')
Элементтин ылдый түшүүчү позициясын жаңыртат.
$().dropdown('dispose')
Элементтин ылдый түшүүчүсүн жок кылат.
Окуялар
Бардык ылдый түшүүчү окуялар анын .dropdown-menuнегизги элементинде relatedTargetиштетилет жана касиетке ээ, анын мааниси которулуучу анкер элементи болуп саналат. hide.bs.dropdownжана hidden.bs.dropdownокуялар , чыкылдатуу окуясы үчүн Окуя объектисин камтыган касиетке ээ clickEvent(окуянын баштапкы түрү болгондо гана ).click
Окуя
Description
show.bs.dropdown
Бул окуя шоу инстанция ыкмасы чакырылганда дароо күйөт.
shown.bs.dropdown
Бул окуя ачылуучу тизме колдонуучуга көрүнгөндөн кийин өчүрүлөт (CSS өтүүлөрү аягына чейин күтөт).
hide.bs.dropdown
Жашыруу инстанция ыкмасы чакырылганда бул окуя дароо өчүрүлөт.
hidden.bs.dropdown
Бул окуя ачылуучу тизмени колдонуучудан жашырып бүткөндөн кийин иштен чыгарылат (CSS өтүүлөрү бүткүчө күтөт).