Offcanvas nga
Mangbangon kadagiti nailemmeng a sidebar iti proyektom para iti nabigasion, shopping cart, ken dadduma pay babaen ti sumagmamano a klase ken ti JavaScript plugin-mi.
No kasano ti panagandar dayta
Ti Offcanvas ket maysa a paset ti sidebar a mabalin a mai-toggle babaen ti JavaScript tapno agparang manipud iti kannigid, kannawan, ngato, wenno baba nga igid ti viewport. Dagiti buton wenno angkla ket maus-usar a kas dagiti trigger a naikapet kadagiti espesipiko nga elemento nga i-toggle-mo, ken data
dagiti attribute ket maus-usar a mangawag ti JavaScriptmi.
- Ti Offcanvas ket mangibinglay ti sumagmamano kadagiti isu met laeng a kodigo ti JavaScript a kas dagiti modal. Iti konsepto, agpapadada unay, ngem agsina dagitoy a plugin.
- Kasta met, dagiti sumagmamano a taudan a Sass a variable para kadagiti estilo ken dagiti dimension ti offcanvas ket natawid manipud kadagiti variable ti modal.
- No maipakita, ti offcanvas ket mangiraman ti default a backdrop a mabalin a mai-klik tapno mailemmeng ti offcanvas.
- Kas kadagiti modal, maysa laeng nga offcanvas ti mabalin a maipakita iti tunggal gundaway.
Ulo nga agpangato! No maited no kasano a ti CSS ket mangasikaso kadagiti animasion, saanmo a mabalin nga usaren margin
wenno translate
iti maysa nga .offcanvas
elemento. Imbes ketdi, usaren ti klase a kas maysa nga agwaywayas nga elemento ti panagbalkot.
prefers-reduced-motion
panagsaludsod ti media. Kitaen ti
benneg ti naikkat a panaggunay ti dokumentasionmi ti pannakagun-od .
Dagiti pagarigan
Dagiti paset ti offcanvas
Iti baba ket ti maysa nga offcanvas a pagarigan a naipakita babaen ti default (babaen ti .show
on .offcanvas
). Ti Offcanvas ket mangiraman ti suporta para iti maysa nga ulo nga addaan iti agserra a buton ken ti opsional a klase ti bagi para iti sumagmamano nga umuna padding
. Isingasingmi nga iramanmo dagiti offcanvas nga ulo nga addaan kadagiti panagikkat a panagtignay no mabalin, wenno mangipaay ti nalawag a panagikkat a panagtignay.
Offcanvas nga
<div class="offcanvas offcanvas-start show" tabindex="-1" id="offcanvas" aria-labelledby="offcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
Content for the offcanvas goes here. You can place just about any Bootstrap component or custom elements here.
</div>
</div>
Agbiag nga demo
Usaren dagiti buton iti baba tapno ipakita ken ilemmeng ti maysa nga offcanvas nga elemento babaen ti JavaScript a mangbalbaliw ti .show
klase iti maysa nga elemento iti .offcanvas
klase.
.offcanvas
ilemmeng ti linaon (default) ..offcanvas.show
ipakitana ti linaonna
Mabalinmo nga usaren ti silpo nga addaan iti href
attribute, wenno ti buton nga addaan iti data-bs-target
attribute. Iti agpada a kaso, ti data-bs-toggle="offcanvas"
ket kasapulan.
Offcanvas nga
<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
Button with data-bs-target
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
Dropdown button
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
</div>
Panag-scroll ti bagi
Ti panag-scroll ti <body>
elemento ket nabalbaliwan no ti maysa nga offcanvas ken ti backdropna ket makita. Usaren ti data-bs-scroll
attribute tapno mapalubosan ti <body>
panag-scroll.
Offcanvas nga addaan iti body scroll
Padasem nga i-scroll ti nabati a paset ti panid tapno makitam daytoy a pagpilian nga agtigtignay.
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Enable body scrolling</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">Offcanvas with body scrolling</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
Panag-scroll ti bagi ken backdrop
Mabalinmo met nga ipalubos ti <body>
panag-scroll nga addaan iti makita a backdrop.
Backdrop nga addaan iti panag-scroll
Padasem nga i-scroll ti nabati a paset ti panid tapno makitam daytoy a pagpilian nga agtigtignay.
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Enable both scrolling & backdrop</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">Backdrop with scrolling</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
Estatiko nga backdrop
No ti backdrop ket naikabil iti estatiko, ti offcanvas ket saan nga agserra no ag-click iti ruar daytoy.
Offcanvas nga
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#staticBackdrop" aria-controls="staticBackdrop">
Toggle static offcanvas
</button>
<div class="offcanvas offcanvas-start" data-bs-backdrop="static" tabindex="-1" id="staticBackdrop" aria-labelledby="staticBackdropLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="staticBackdropLabel">Offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
I will not close if you click outside of me.
</div>
</div>
</div>
Nasipnget nga offcanvas
Nainayon iti v5.2.0Baliwan ti langa dagiti offcanvase nga addaan kadagiti utilidad tapno nasaysayaat a maipada dagitoy kadagiti nadumaduma a konteksto a kas dagiti nasipnget a navbar. Ditoy nga inayonmi .text-bg-dark
ti .offcanvas
ken .btn-close-white
to .btn-close
para iti umno nga estilo nga addaan iti nasipnget nga offcanvas. No addaanka kadagiti dropdown iti uneg, ibilangmo met ti pananginayon .dropdown-menu-dark
iti .dropdown-menu
.
Offcanvas nga
Ikabil ti linaon ti offcanvas ditoy.
<div class="offcanvas offcanvas-start show text-bg-dark" tabindex="-1" id="offcanvasDark" aria-labelledby="offcanvasDarkLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasDarkLabel">Offcanvas</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvasDark" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Place offcanvas content here.</p>
</div>
</div>
Nasungbatan
Nainayon iti v5.2.0Dagiti makasungbat nga offcanvas a klase ket mangilemmeng ti linaon iti ruar ti viewport manipud iti naikeddeng a breakpoint ken agpababa. Iti ngato dayta a breakpoint, dagiti linaon iti uneg ket agtignayto a kas iti gagangay. Kas pagarigan, .offcanvas-lg
mangilemmeng ti linaon iti maysa nga offcanvas iti baba ti lg
breakpoint, ngem mangipakita ti linaon iti ngato ti lg
breakpoint.
Responsibo nga offcanvas
Daytoy ket linaon iti uneg ti maysa a .offcanvas-lg
.
<button class="btn btn-primary d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasResponsive" aria-controls="offcanvasResponsive">Toggle offcanvas</button>
<div class="alert alert-info d-none d-lg-block">Resize your browser to show the responsive offcanvas toggle.</div>
<div class="offcanvas-lg offcanvas-end" tabindex="-1" id="offcanvasResponsive" aria-labelledby="offcanvasResponsiveLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasResponsiveLabel">Responsive offcanvas</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#offcanvasResponsive" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p class="mb-0">This is content within an <code>.offcanvas-lg</code>.</p>
</div>
</div>
Dagiti responsive offcanvas classes ket magun-od iti ballasiw para iti tunggal breakpoint.
.offcanvas
.offcanvas-sm
.offcanvas-md
.offcanvas-lg
.offcanvas-xl
.offcanvas-xxl
Panagplastar
Awan ti default a pannakaikabil para kadagiti paset ti offcanvas, isu a masapul nga inayonmo ti maysa kadagiti klase ti mangbalbaliw iti baba.
.offcanvas-start
mangikabil ti offcanvas iti kannigid ti viewport (naipakita iti ngato) ..offcanvas-end
ikabilna ti offcanvas iti kannawan ti viewport.offcanvas-top
ikabilna ti offcanvas iti ngato ti viewport.offcanvas-bottom
ikabilna ti offcanvas iti baba ti viewport
Padasem dagiti pagarigan iti ngato, kannawan, ken baba.
Offcanvas nga tuktok
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Toggle top offcanvas</button>
<div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasTopLabel">Offcanvas top</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
Offcanvas nga kannawan
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Toggle right offcanvas</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasRightLabel">Offcanvas right</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
Offcanvas nga baba
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Toggle bottom offcanvas</button>
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasBottomLabel">Offcanvas bottom</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body small">
...
</div>
</div>
Ti pannakagun-od
Gapu ta ti offcanvas a panel ket konsepto a maysa a modal a dialogo, siguraduen nga inayon aria-labelledby="..."
—a mangitudo ti paulo ti offcanvas —iti .offcanvas
. Imutektekanyo a saanyo a kasapulan ti mangnayon role="dialog"
yantangay nainayonmi dayta babaen ti JavaScript.
CSS nga
Dagiti Variable
Nainayon iti v5.2.0Kas paset ti agbaliwbaliw nga asidegan dagiti CSS a variable ti Bootstrap, ti offcanvas ket agus-usar itan kadagiti lokal a CSS a variable on .offcanvas
para iti napasayaat nga aktual nga oras a panagpasayaat. Dagiti pateg para kadagiti variable ti CSS ket naikeddeng babaen ti Sass, isu a ti panagpasayaat ti Sass ket nasuportaran pay laeng, met.
--#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
--#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
--#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
--#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
--#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
--#{$prefix}offcanvas-color: #{$offcanvas-color};
--#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
--#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
--#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
--#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
Sass dagiti variable
$offcanvas-padding-y: $modal-inner-padding;
$offcanvas-padding-x: $modal-inner-padding;
$offcanvas-horizontal-width: 400px;
$offcanvas-vertical-height: 30vh;
$offcanvas-transition-duration: .3s;
$offcanvas-border-color: $modal-content-border-color;
$offcanvas-border-width: $modal-content-border-width;
$offcanvas-title-line-height: $modal-title-line-height;
$offcanvas-bg-color: $modal-content-bg;
$offcanvas-color: $modal-content-color;
$offcanvas-box-shadow: $modal-content-box-shadow-xs;
$offcanvas-backdrop-bg: $modal-backdrop-bg;
$offcanvas-backdrop-opacity: $modal-backdrop-opacity;
Panagusar
Ti offcanvas plugin ket agus-usar kadagiti sumagmamano a klase ken dagiti attribute tapno mangasikaso ti nadagsen a panagipangato:
.offcanvas
ilemmengna ti linaonna.offcanvas.show
ipakitana ti linaonna.offcanvas-start
ilemmeng ti offcanvas iti kannigid.offcanvas-end
ilemmeng ti offcanvas iti kannawan.offcanvas-top
ilemmeng ti offcanvas iti ngato.offcanvas-bottom
ilemmengna ti offcanvas iti baba
Manginayon ti buton ti panangilaksid nga addaan ti data-bs-dismiss="offcanvas"
attribute, a mangtignay ti panagusar ti JavaScript. Siguraduen nga usaren ti <button>
elemento a kaduana para iti umno a kababalin iti ballasiw dagiti amin nga alikamen.
Babaen kadagiti attribute ti datos
Ag-toggle nga
Inayon data-bs-toggle="offcanvas"
ken a data-bs-target
wenno href
iti elemento tapno automatiko a mangituding ti kontrol ti maysa nga offcanvas nga elemento. Ti data-bs-target
attribute ket umawat ti maysa a CSS a mangpili a pangipakat ti offcanvas iti. Siguraduen nga inayon ti klase offcanvas
iti offcanvas element. No kayatmo a default a malukatan, inayon ti kanayonan a klase show
.
Papanawen
Ti pannakaikkat ket mabalin a maragpat babaen ti data
attribute iti maysa a buton iti uneg ti offcanvas a kas naipakita iti baba:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
wenno iti maysa a buton iti ruar ti offcanvas babaen ti panangusar iti data-bs-target
kas naipakita iti baba:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#my-offcanvas" aria-label="Close"></button>
Babaen ti JavaScript
Pagbalinen a manual babaen ti:
const offcanvasElementList = document.querySelectorAll('.offcanvas')
const offcanvasList = [...offcanvasElementList].map(offcanvasEl => new bootstrap.Offcanvas(offcanvasEl))
Dagiti Pagpilian
Kas dagiti pagpilian ket mabalin a maipasa babaen dagiti kababalin ti datos wenno JavaScript, mabalinmo nga inayon ti nagan ti pagpilian iti data-bs-
, a kas iti data-bs-animation="{value}"
. Siguraduen a baliwan ti kita ti kaso ti nagan ti pagpilian manipud iti “ camelCase ” iti “ kebab-case ” no ipasa dagiti pagpilian babaen kadagiti kababalin ti datos. Kas pagarigan, usaren data-bs-custom-class="beautifier"
imbes a data-bs-customClass="beautifier"
.
Manipud iti Bootstrap 5.2.0, amin a paset ket mangsuporta ti eksperimental a naireserba a kababalin ti datos data-bs-config
a mabalin a mangbalay ti simple a panagisaad ti paset a kas ti kuerdas ti JSON. No ti maysa nga elemento ket addaan kadagiti data-bs-config='{"delay":0, "title":123}'
ken data-bs-title="456"
dagiti kababalin, ti maudi a title
pateg ket agbalinto 456
ken dagiti naisina a kababalin ti datos ket mangbalbaliw kadagiti pateg a naited iti data-bs-config
. Iti pay maipatinayon, dagiti addan a kababalin ti datos ket makabaelda a mangbalay kadagiti pateg ti JSON a kas ti data-bs-delay='{"show":0,"hide":150}'
.
Nagan | Tipo | Default | Panangiladawan |
---|---|---|---|
backdrop |
boolean wenno ti kuerdasstatic |
true |
Mangikabil iti backdrop iti bagi bayat a nakalukat ti offcanvas. Saan laeng a dayta, ikeddeng static para iti backdrop a saan a mangiserra ti offcanvas no mai-klik. |
keyboard |
boolean nga | true |
Serraan ti offcanvas no maipidut ti escape key. |
scroll |
boolean nga | false |
Bay-an nga ag-scroll ti bagi bayat a nakalukat ti offcanvas. |
Dagiti Pamay-an
Dagiti asynchronous a pamay-an ken panagbalbaliw
Amin a pamay-an ti API ket asynchronous ken mangrugi ti panagbalbaliw . Agsublida iti tumawag apaman a mairugi ti panagbalbaliw ngem sakbay nga agpatingga . Iti pay maipatinayon, ti maysa nga awag ti pamay-an iti maysa a panagbalbaliw a paset ket mailaksidto .
Kitaen ti dokumentasionmi iti JavaScript para iti ad-adu pay nga impormasion .
Paaktiboenna ti linaonmo kas maysa nga offcanvas nga elemento. Awaten ti maysa nga opsional a pagpilian object
.
Mabalinmo ti mangpartuat ti maysa nga offcanvas nga instansia babaen ti konstruktor, kas pagarigan:
const bsOffcanvas = new bootstrap.Offcanvas('#myOffcanvas')
Wagas | Panangiladawan |
---|---|
getInstance |
Estatiko a pamay-an a mangipalubos kenka a makaala ti offcanvas nga instansia a nainaig iti maysa nga elemento ti DOM. |
getOrCreateInstance |
Estatiko a pamay-an a mangipalubos kenka a makaala ti offcanvas nga instansia a nainaig iti maysa nga elemento ti DOM, wenno mangpartuat ti baro no kas pagarigan saan a nairugi. |
hide |
Ilemmeng ti maysa nga elemento nga offcanvas. Agsubli iti tumawag sakbay nga aktual a nailemmeng ti elemento ti offcanvas (kayatna a sawen sakbay a hidden.bs.offcanvas mapasamak ti pasamak). |
show |
Ipakita ti maysa nga elemento nga offcanvas. Agsubli iti tumawag sakbay nga aktual a naipakita ti elemento ti offcanvas (kayatna a sawen sakbay a shown.bs.offcanvas mapasamak ti pasamak). |
toggle |
I-toggle ti maysa nga offcanvas nga elemento iti maipakita wenno mailemmeng. Agsubli iti tumawag sakbay nga aktual a naipakita wenno nailemmeng ti elemento ti offcanvas (kayatna a sawen sakbay a mapasamak ti shown.bs.offcanvas wenno hidden.bs.offcanvas pasamak). |
Dagiti Pasamak
Ti offcanvas a klase ti Bootstrap ket mangibutaktak kadagiti sumagmamano a pasamak para iti panag-hook iti offcanvas a panagandar.
Kita ti pasamak | Panangiladawan |
---|---|
hide.bs.offcanvas |
Daytoy a pasamak ket dagus a mapaputok no ti hide pamay-an ket naawagan. |
hidden.bs.offcanvas |
Daytoy a pasamak ket mapaputok no ti maysa nga elemento ti offcanvas ket nailemmeng manipud iti agar-aramat (urayenna dagiti panagbalbaliw ti CSS a makompleto). |
hidePrevented.bs.offcanvas |
Daytoy a pasamak ket mapaputok no ti offcanvas ket maipakita, ti backdropna ket static ken ti maysa a panagpidut iti ruar ti offcanvas ket maaramid. Ti pasamak ket mapaputok pay no ti teklado ti panaglibas ket maipidut ken ti keyboard pagpilian ket naikeddeng iti false . |
show.bs.offcanvas |
Daytoy a pasamak ket agputok a dagus no ti show pamay-an ti pagarigan ket maawagan. |
shown.bs.offcanvas |
Daytoy a pasamak ket mapaputok no ti maysa nga elemento ti offcanvas ket naaramid a makita ti agar-aramat (urayenna dagiti panagbalbaliw ti CSS a makompleto). |
const myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', event => {
// do something...
})