Jiberhevketin
Bi çend dersan û pêvekên me yên JavaScript-ê dîtina naverokê li seranserê projeya xwe biguhezînin.
Çawa dixebite
Pêveka têkçûyî ya JavaScript-ê ji bo nîşankirin û veşartina naverokê tê bikar anîn. Bişkok an lenger wekî tetikan têne bikar anîn ku ji hêmanên taybetî yên ku hûn diguhezînin têne nexşe kirin. Hilweşîna hêmanek dê height
ji nirxa wê ya heyî berbi 0
. Ji ber ku CSS çawa anîmasyonan digire, hûn nekarin padding
li ser .collapse
hêmanek bikar bînin. Di şûna wê de, polê wekî hêmanek pêça serbixwe bikar bînin.
prefers-reduced-motion
medyayê ve girêdayî ye. Binêre
beşa tevgera kêmkirî ya belgeya gihîştina me .
Mînak
Bişkojkên jêrîn bikirtînin da ku elementek din bi guhertinên polê ve nîşan bidin û veşêrin:
.collapse
naverokê vedişêre.collapsing
di dema veguherînan de tê sepandin.collapse.show
naverokê nîşan dide
Bi gelemperî, em pêşniyar dikin ku bişkojek bi data-bs-target
taybetmendiyê bikar bînin. Dema ku ji hêla semantîkî ve nayê pêşniyar kirin, hûn dikarin girêdanek bi href
taybetmendiyê (û a role="button"
) jî bikar bînin. Di her du rewşan de, data-bs-toggle="collapse"
pêdivî ye.
<p>
<a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-bs-target
</button>
</p>
<div class="collapse" id="collapseExample">
<div class="card card-body">
Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
Asumane
Pêveka hilweşînê di heman demê de hilweşîna horizontal piştgirî dike. .collapse-horizontal
Çîna guhêrbar lê zêde bikin da ku li şûna width
wê veguhezînin height
û a width
li ser hêmana zarokê ya yekser saz bikin. Hûn bi dilxwazî binivîsin Sass-a xweya xwerû, şêwazên hundurîn bikar bînin, an karûbarên meya firehiyê bikar bînin .
min-height
heye ku di belgeyên me de ji nûvekirina zêde nemîne, ev bi eşkere ne hewce ye.
Tenê width
hêmana li ser zarokê pêdivî ye.
<p>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse collapse-horizontal" id="collapseWidthExample">
<div class="card card-body" style="width: 300px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Gelek armancên
A <button>
an <a>
dikare çend hêmanan nîşan bide û veşêre bi referanskirina wan bi hilbijêrek di nav xwe href
an data-bs-target
taybetmendiya xwe de. Gelek <button>
an jî <a>
dikarin hêmanekê nîşan bidin û veşêrin heke ew her yek bi taybetmendiya href
xwe jê re referans bikindata-bs-target
<p>
<a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</p>
<div class="row">
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample1">
<div class="card card-body">
Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
</div>
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample2">
<div class="card card-body">
Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div>
</div>
</div>
</div>
Gihîştina
Bawer bikin aria-expanded
ku li hêmana kontrolê zêde bikin. Ev taybetmendî bi eşkere rewşa heyî ya hêmana hilweşandî ya ku bi kontrola xwendevanên ekranê û teknolojiyên arîkar ên mîna wan ve girêdayî ye radigihîne. Ger hêmana hilavêtinê ji hêla xwerû ve girtî be, divê taybetmendiya li ser hêmana kontrolê xwedî nirxek be aria-expanded="false"
. Ger we hêmana hilavêtinê destnîşan kiriye ku ji hêla xwerû ve bi karanîna show
polê vekirî be, aria-expanded="true"
li şûna wê li ser kontrolê bicîh bikin. Pêvek dê bixweber vê taybetmendiyê li ser kontrolê biguherîne li ser bingeha ku hêmana hilweşandî hatiye vekirin an girtî ye (bi JavaScript, an ji ber ku bikarhêner hêmanek kontrolê ya din jî bi heman hêmana hilweşandî ve girêdayî ye vekiriye). Ger hêmana HTML ya hêmana kontrolê ne bişkokek be (mînak, an <a>
an <div>
), taybetmendîrole="button"
divê li hêmanê were zêdekirin.
Ger hêmana weya kontrolê hêmanek yekane ya hilaweşker hedef digire - ango data-bs-target
taybetmendî îşaret bi id
hilbijêrek dike - divê hûn aria-controls
taybetmendiyê li hêmana kontrolê zêde bikin, ku id
hêmana hilavêtinê tê de ye. Xwendevanên ekrana nûjen û teknolojiyên arîkar ên bi vî rengî vê taybetmendiyê bikar tînin da ku ji bikarhêneran kurtebirên zêde peyda bikin da ku rasterast li hêmana hilweşandî bixwe bigerin.
Bala xwe bidinê ku bicîhkirina Bootstrap-ê ya heyî, têkiliyên cihêreng ên klavyeyê yên vebijarkî yên ku di şêwaza akordeyonê ya Rêbernameya Pratîkên Nivîskariyê ARIA de hatine vegotin nagire - hûn ê hewce bikin ku van bi xwe bi JavaScript-a xwerû re têxin nav xwe.
Sass
Variables
$transition-collapse: height .35s ease;
$transition-collapse-width: width .35s ease;
Classes
Dersên veguheztina hilweşînê dikarin tê de werin dîtin ji scss/_transitions.scss
ber ku ev li gelek pêkhateyan têne parve kirin (hilweşîn û akordeyon).
.collapse {
&:not(.show) {
display: none;
}
}
.collapsing {
height: 0;
overflow: hidden;
@include transition($transition-collapse);
&.collapse-horizontal {
width: 0;
height: auto;
@include transition($transition-collapse-width);
}
}
Bikaranîna
Pêveka hilweşînê ji bo hilgirtina giran çend dersan bikar tîne:
.collapse
naverokê vedişêre.collapse.show
naverokê nîşan dide.collapsing
dema ku veguheztin dest pê dike tê zêdekirin, û dema ku ew qediya tê jêbirin
Van dersan dikarin di nav de werin dîtin_transitions.scss
.
Bi taybetmendiyên daneyê
Tenê data-bs-toggle="collapse"
û a data-bs-target
li hêmanê zêde bikin da ku bixweber kontrola yek an jî çend hêmanên hilweşandî destnîşan bikin. Taybetmendî data-bs-target
hilbijêrek CSS-ê qebûl dike ku hilweşînê li ser bicîh bike. Bawer bikin ku polê zêde bikincollapse
li hêmana hilweşandî zêde bikin. Heke hûn dixwazin ku ew bi xweber vebe, çîna pêvek zêde bikin show
.
Ji bo ku rêveberiya komê ya mîna akordeyonê li deverek hilweşandî zêde bikin, taybetmendiya daneyê zêde bikin data-bs-parent="#selector"
. Binêre bo bêtir agahdarî li rûpela accordionê binihêrin .
Bi JavaScript
Bi destan çalak bike bi:
const collapseElementList = document.querySelectorAll('.collapse')
const collapseList = [...collapseElementList].map(collapseEl => new bootstrap.Collapse(collapseEl))
Vebijêrk
Ji ber ku vebijark dikarin bi taybetmendiyên daneyan an JavaScriptê ve werin derbas kirin, hûn dikarin navek vebijarkê lê zêde bikin data-bs-
, wekî di data-bs-animation="{value}"
. Dema ku vebijarkan bi taybetmendiyên daneyê re derbas bikin, pê ewle bin ku hûn celebê doza navê vebijarkê ji " camelCase " veguherînin " kebab-case ". Mînakî, data-bs-custom-class="beautifier"
li şûna bikar bînin data-bs-customClass="beautifier"
.
Ji Bootstrap 5.2.0-ê, hemî pêkhate taybetmendiyek daneya veqetandî ya ceribandinêdata-bs-config
piştgirî dikin ku dikare veavakirina hêmanek hêsan wekî rêzek JSON bihewîne. Dema ku hêmanek hebe data-bs-config='{"delay":0, "title":123}'
û data-bs-title="456"
taybetmendî hebe, nirxa paşîn title
dê bibe 456
û taybetmendiyên daneya veqetandî dê nirxên ku li ser hatine dayîn derbas bikin data-bs-config
. Digel vê yekê, taybetmendiyên daneya heyî dikarin nirxên JSON ên mîna data-bs-delay='{"show":0,"hide":150}'
.
Nav | Awa | Destçûnî | Terîf |
---|---|---|---|
parent |
hilbijêr, hêmana DOM | null |
Ger dêûbav were peyda kirin, wê hingê dê hemî hêmanên hilweşandî yên di binê dêûbavê diyarkirî de werin girtin dema ku ev tişta hilvekirî were xuyang kirin. (wek behreya akordionê ya kevneşopî - ev bi polê ve girêdayî card ye). Pêdivî ye ku taybetmendî li ser devera hilweşandî ya armanc were danîn. |
toggle |
boolean | true |
Hêmana hilavêtinê ya li ser bangkirinê vedike. |
Methods
Rêbaz û veguherînên Asynchronous
Hemî rêbazên API-ê asynkron in û veguherînek dest pê dikin . Gava ku veguhêz dest pê kir lê berî ku biqede ew vedigerin bangkerê . Wekî din, bangek rêbazek li ser pêkhateyek veguhêz dê were paşguh kirin.
Naveroka we wekî hêmanek hilweşandî çalak dike. Vebijarkek vebijarkî qebûl object
dike.
Hûn dikarin bi çêker re mînakek hilweşandinê biafirînin, mînakî:
const bsCollapse = new bootstrap.Collapse('#myCollapse', {
toggle: false
})
Awa | Terîf |
---|---|
dispose |
Hilweşîna hêmanekê hilweşîne. (Daneyên hilanîn ên li ser hêmana DOM-ê radike) |
getInstance |
Rêbaza statîk a ku dihêle hûn mînaka hilweşînê ya ku bi hêmanek DOM-ê ve girêdayî ye bistînin, hûn dikarin wê bi vî rengî bikar bînin: bootstrap.Collapse.getInstance(element) . |
getOrCreateInstance |
Rêbaza statîk a ku mînakek hilweşînê ya ku bi hêmanek DOM-ê ve girêdayî ye vedigerîne an heke ew nehatibe destpêkirin yek nû diafirîne. Hûn dikarin wê bi vî rengî bikar bînin bootstrap.Collapse.getOrCreateInstance(element) :. |
hide |
Hêmanek hilweşandî vedişêre. Berî ku hêmana hilavêtinê bi rastî were veşartin (mînak, berî ku hidden.bs.collapse bûyer çêbibe) vedigere bangkerê. |
show |
Elementeke davekirî nîşan dide. Berî ku hêmana hilavêtinê bi rastî were xuyang kirin (mînak, berî ku shown.bs.collapse bûyer çêbibe) vedigere bangkerê. |
toggle |
Hêmanek dagirtî ji bo xuyangkirin an veşartinê vedigire. Berî ku hêmana hilavêtinê bi rastî were xuyang kirin an veşartin (ango berî ku bûyer shown.bs.collapse an hidden.bs.collapse bûyer çêbibe) vedigere bangkerê. |
Events
Dersa hilweşînê ya Bootstrap çend bûyeran ji bo girêdana fonksiyona hilweşînê eşkere dike.
Cureyê bûyerê | Terîf |
---|---|
hide.bs.collapse |
hide Dema ku rêbaz hate gazî kirin ev bûyer yekser tê şewitandin . |
hidden.bs.collapse |
Ev bûyer dema ku hêmanek hilweşandî ji bikarhêner ve hatî veşartin tê şewitandin (dê li bendê bimîne ku veguheztinên CSS biqede). |
show.bs.collapse |
show Dema ku rêbaza nimûneyê tê gazî kirin ev bûyer tavilê dişewite. |
shown.bs.collapse |
Dema ku hêmanek hilweşandî ji bikarhênerê re xuya bibe ev bûyer tê şewitandin (dê li bendê bimîne ku veguheztinên CSS temam bibin). |
const myCollapsible = document.getElementById('myCollapsible')
myCollapsible.addEventListener('hidden.bs.collapse', event => {
// do something...
})