Kunjuzi
Geuza viwekeleo vya muktadha kwa ajili ya kuonyesha orodha za viungo na zaidi ukitumia programu-jalizi ya kunjuzi ya Bootstrap.
Kunjuzi zinaweza kugeuzwa, ziwekelezwe za kimuktadha kwa ajili ya kuonyesha orodha za viungo na zaidi. Yamefanywa kuingiliana na programu-jalizi ya kunjuzi ya Bootstrap iliyojumuishwa ya JavaScript. Zinabadilishwa kwa kubofya, sio kwa kuelea; huu ni uamuzi wa makusudi wa kubuni.
Kunjuzi hujengwa kwenye maktaba ya wahusika wengine, Popper.js , ambayo hutoa nafasi inayobadilika na utambuzi wa sehemu ya kutazama. Hakikisha kuwa umejumuisha popper.min.js kabla ya JavaScript ya Bootstrap au tumia bootstrap.bundle.min.js
/ bootstrap.bundle.js
ambayo ina Popper.js. Popper.js haitumiwi kuweka menyu kunjuzi katika pau za urambazaji ingawa kwa vile uwekaji nafasi unaobadilika hauhitajiki.
Ikiwa unaunda JavaScript yetu kutoka kwa chanzo, inahitajiutil.js
.
Kiwango cha WAI ARIA kinafafanua role="menu"
wijeti halisi , lakini hii ni mahususi kwa menyu zinazofanana na programu ambazo huanzisha vitendo au utendakazi. Menyu za ARIA zinaweza tu kuwa na vipengee vya menyu, vipengee vya menyu ya kisanduku cha kuteua, vipengee vya menyu ya vitufe vya redio, vikundi vya vitufe vya redio na menyu ndogo.
Kunjuzi za Bootstrap, kwa upande mwingine, zimeundwa kuwa za jumla na zinazotumika kwa hali mbalimbali na miundo ya kuashiria. Kwa mfano, inawezekana kuunda menyu kunjuzi ambazo zina pembejeo za ziada na vidhibiti vya fomu, kama vile sehemu za utafutaji au fomu za kuingia. Kwa sababu hii, Bootstrap haitarajii (wala kuongeza kiotomatiki) yoyote ya role
na aria-
sifa zinazohitajika kwa menyu za kweli za ARIA . Waandishi watalazimika kujumuisha sifa hizi mahususi wenyewe.
Walakini, Bootstrap haiongezei usaidizi uliojumuishwa ndani kwa mwingiliano mwingi wa menyu ya kibodi, kama vile uwezo wa kusogea kupitia .dropdown-item
vipengee mahususi kwa kutumia vitufe vya kishale na kufunga menyu kwa ESCufunguo.
Funga kigeuzi cha menyu kunjuzi (kitufe au kiungo chako) na menyu kunjuzi ndani ya .dropdown
, au kipengele kingine kinachotangaza position: relative;
. Kunjuzi kunaweza kuanzishwa kutoka <a>
au <button>
vipengee ili kutosheleza mahitaji yako yanayoweza kutokea.
Single yoyote .btn
inaweza kugeuzwa kuwa menyu kunjuzi na mabadiliko kadhaa ya alama. Hivi ndivyo unavyoweza kuziweka kufanya kazi na <button>
vipengele vyovyote:
<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>
Na <a>
vipengele:
<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>
Sehemu bora ni kwamba unaweza kufanya hivyo na lahaja yoyote ya kitufe, pia:
Vile vile, unda menyu kunjuzi ya vitufe vya mgawanyiko kwa karibu alama sawa na menyu kunjuzi ya kitufe kimoja, lakini kwa kuongezwa .dropdown-toggle-split
kwa nafasi ifaayo kuzunguka sehemu ya kunjuzi.
Tunatumia darasa hili la ziada ili kupunguza mlalo padding
kwa kila upande wa caret kwa 25% na kuondoa margin-left
ile iliyoongezwa kwa kunjuzi za vitufe vya kawaida. Mabadiliko hayo ya ziada huweka caret katikati ya kitufe cha mgawanyiko na kutoa eneo la kugonga la ukubwa unaofaa zaidi karibu na kitufe kikuu.
Vitufe kunjuzi hufanya kazi na vitufe vya ukubwa wote, ikiwa ni pamoja na vitufe vya chaguo-msingi na vilivyogawanyika.
Anzisha menyu kunjuzi zilizo juu ya vipengee kwa kuongeza .dropup
kwenye kipengee kikuu.
Anzisha menyu kunjuzi zilizo upande wa kulia wa vipengee kwa kuongeza .dropright
kwenye kipengele kikuu.
Anzisha menyu kunjuzi zilizo upande wa kushoto wa vipengee kwa kuongeza .dropleft
kwenye kipengele kikuu.
Kihistoria yaliyomo kwenye menyu kunjuzi ilibidi kuwa viungo, lakini sivyo ilivyo na v4. Sasa unaweza kutumia kwa hiari <button>
vipengele kwenye menyu kunjuzi zako badala ya <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>
Kwa chaguomsingi, menyu kunjuzi huwekwa kiotomatiki 100% kutoka juu na upande wa kushoto wa mzazi wake. Ongeza .dropdown-menu-right
kwenye a .dropdown-menu
panga menyu kunjuzi.
Vichwa juu! Kunjuzi zimewekwa shukrani kwa Popper.js (isipokuwa zikiwa kwenye upau wa urambazaji).
<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>
Ongeza kichwa ili kuweka lebo sehemu za vitendo katika menyu kunjuzi yoyote.
<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>
Tenganisha vikundi vya vipengee vya menyu vinavyohusiana na kigawanyaji.
<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>
Weka fomu ndani ya menyu kunjuzi, au uifanye kuwa menyu kunjuzi, na utumie huduma za ukingo au padding ili kuipa nafasi hasi unayohitaji.
<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>
Ongeza .active
kwa vipengee katika menyu kunjuzi ili kuvifanya kuwa vinavyotumika .
<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>
Ongeza .disabled
kwa vipengee katika menyu kunjuzi ili kuvifanya kuwa vimezimwa .
<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>
Kupitia sifa za data au JavaScript, programu-jalizi kunjuzi hugeuza maudhui yaliyofichwa (menu kunjuzi) kwa kugeuza .show
darasa kwenye kipengee cha orodha kuu. Sifa data-toggle="dropdown"
hiyo inategemewa kwa kufunga menyu kunjuzi katika kiwango cha programu, kwa hivyo ni wazo nzuri kuitumia kila wakati.
Kwenye vifaa vinavyoweza kuguswa, kufungua menyu kunjuzi huongeza vidhibiti tupu ( $.noop
) mouseover
kwa watoto wa karibu wa <body>
kipengele. Udukuzi huu mbaya unaokubalika ni muhimu ili kutatua tatizo katika ujumbe wa tukio la iOS , ambalo lingezuia kugusa popote nje ya menyu kunjuzi kuanzisha msimbo unaofunga menyu kunjuzi. Mara tu menyu kunjuzi itakapofungwa, vidhibiti tupu hivi vya ziada mouseover
huondolewa.
Ongeza data-toggle="dropdown"
kwenye kiungo au kitufe ili kugeuza menyu kunjuzi.
Piga kushuka kupitia JavaScript:
data-toggle="dropdown"
bado inahitajika
Bila kujali ikiwa unapiga simu kunjuzi yako kupitia JavaScript au badala yake utumie data-api, data-toggle="dropdown"
inahitajika kila wakati kuwepo kwenye kichochezi cha menyu kunjuzi.
Chaguzi zinaweza kupitishwa kupitia sifa za data au JavaScript. Kwa sifa za data, ongeza jina la chaguo kwa data-
, kama katika data-offset=""
.
Jina | Aina | Chaguomsingi | Maelezo |
---|---|---|---|
kukabiliana | nambari | kamba | kazi | 0 | Kukabiliana na menyu kunjuzi kulingana na lengo lake. Kwa maelezo zaidi rejelea hati za kukabiliana na Popper.js . |
pindua | boolean | kweli | Ruhusu Kunjuzi kugeuza iwapo kuna mwingiliano kwenye kipengele cha marejeleo. Kwa maelezo zaidi rejea hati za mgeuko za Popper.js . |
mpaka | kamba | kipengele | 'scrollParent' | Kizuizi cha vipengee vya ziada vya menyu kunjuzi. Hukubali thamani za 'viewport' , 'window' , 'scrollParent' , au rejeleo la Kipengele cha HTML (JavaScript pekee). Kwa maelezo zaidi rejelea hati za preventOverflow za Popper.js . |
Kumbuka wakati boundary
umewekwa kwa thamani yoyote isipokuwa 'scrollParent'
, mtindo position: static
unatumika kwenye .dropdown
kontena.
Njia | Maelezo |
---|---|
$().dropdown('toggle') |
Hugeuza menyu kunjuzi ya upau wa urambazaji au urambazaji wa kichupo. |
$().dropdown('update') |
Husasisha nafasi ya menyu kunjuzi ya kipengee. |
$().dropdown('dispose') |
Huharibu menyu kunjuzi ya kipengele. |
Matukio yote ya menyu kunjuzi yanarushwa kwa .dropdown-menu
kipengele cha mzazi na yana relatedTarget
mali, ambayo thamani yake ni kipengele cha kugeuza nanga.
Tukio | Maelezo |
---|---|
show.bs.dropdown |
Tukio hili huwaka mara moja mbinu ya onyesho inapoitwa. |
shown.bs.dropdown |
Tukio hili huwashwa wakati menyu kunjuzi imefanywa kuonekana kwa mtumiaji (itasubiri mabadiliko ya CSS, kukamilisha). |
hide.bs.dropdown |
Tukio hili linafutwa mara moja wakati mbinu ya mfano wa kujificha imeitwa. |
hidden.bs.dropdown |
Tukio hili hutupwa wakati menyu kunjuzi imekamilika kufichwa kutoka kwa mtumiaji (itasubiri mabadiliko ya CSS, kukamilika). |