Offcanvas
Adeiladwch fariau ochr cudd yn eich prosiect ar gyfer llywio, certiau siopa, a mwy gydag ychydig o ddosbarthiadau a'n ategyn JavaScript.
Sut mae'n gweithio
Mae Offcanvas yn gydran bar ochr y gellir ei thoglo trwy JavaScript i ymddangos o ymyl chwith, dde, brig neu waelod y porth gwylio. Defnyddir botymau neu angorau fel sbardunau sydd ynghlwm wrth elfennau penodol y byddwch yn eu toglo, a data
defnyddir priodoleddau i ddefnyddio ein JavaScript.
- Mae Offcanvas yn rhannu rhywfaint o'r un cod JavaScript â moddau. Yn gysyniadol, maent yn eithaf tebyg, ond maent yn ategion ar wahân.
- Yn yr un modd, mae rhai newidynnau ffynhonnell Sass ar gyfer arddulliau a dimensiynau offcanvas yn cael eu hetifeddu o newidynnau'r moddol.
- Pan gaiff ei ddangos, mae offcanvas yn cynnwys cefndir rhagosodedig y gellir ei glicio i guddio'r offcanvas.
- Yn debyg i foddau, dim ond un allgynfas y gellir ei ddangos ar y tro.
Pennau i fyny! O ystyried sut mae CSS yn trin animeiddiadau, ni allwch ddefnyddio margin
nac translate
ar .offcanvas
elfen. Yn lle hynny, defnyddiwch y dosbarth fel elfen lapio annibynnol.
prefers-reduced-motion
ymholiad y cyfryngau. Gweler
adran cynnig gostyngol ein dogfennaeth hygyrchedd .
Enghreifftiau
Cydrannau oddi ar gynfas
Isod mae enghraifft offcanvas a ddangosir yn ddiofyn (trwy .show
ymlaen .offcanvas
). Mae Offcanvas yn cynnwys cefnogaeth ar gyfer pennawd gyda botwm cau a dosbarth corff dewisol ar gyfer rhai cychwynnol padding
. Rydym yn awgrymu eich bod yn cynnwys penawdau oddi ar y cynfas gyda chamau diswyddo lle bynnag y bo modd, neu ddarparu gweithred ddiswyddo benodol.
Offcanvas
<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>
Demo byw
Defnyddiwch y botymau isod i ddangos a chuddio elfen offcanvas trwy JavaScript sy'n toglo'r .show
dosbarth ar elfen gyda'r .offcanvas
dosbarth.
.offcanvas
yn cuddio cynnwys (diofyn).offcanvas.show
yn dangos cynnwys
Gallwch ddefnyddio dolen gyda'r href
priodoledd, neu botwm gyda'r data-bs-target
priodoledd. Yn y ddau achos, data-bs-toggle="offcanvas"
mae'n ofynnol.
Offcanvas
<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>
Sgrolio'r corff
Mae sgrolio'r <body>
elfen wedi'i analluogi pan fydd allcanvas a'i gefndir yn weladwy. Defnyddiwch y data-bs-scroll
priodoledd i alluogi <body>
sgrolio.
Oddi ar y cynfas gyda sgrolio corff
Ceisiwch sgrolio gweddill y dudalen i weld yr opsiwn hwn ar waith.
<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>
Sgrolio'r corff a chefndir
Gallwch hefyd alluogi <body>
sgrolio gyda chefndir gweladwy.
Cefndir gyda sgrolio
Ceisiwch sgrolio gweddill y dudalen i weld yr opsiwn hwn ar waith.
<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>
Cefndir statig
Pan fydd y cefndir wedi'i osod yn sefydlog, ni fydd y cynfas yn cau wrth glicio y tu allan iddo.
Offcanvas
<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>
Offcanvas tywyll
Ychwanegwyd yn v5.2.0Newidiwch ymddangosiad oddi ar gynfasau gyda chyfleustodau i'w paru'n well â gwahanol gyd-destunau fel barrau llywio tywyll. Yma rydym yn ychwanegu .text-bg-dark
at y .offcanvas
ac .btn-close-white
at .btn-close
ar gyfer steilio cywir gydag oddi ar gynfas tywyll. Os oes gennych gwymplenni, ystyriwch ychwanegu .dropdown-menu-dark
at .dropdown-menu
.
Offcanvas
Rhowch gynnwys offcanvas yma.
<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>
Ymatebol
Ychwanegwyd yn v5.2.0Mae dosbarthiadau offcanvas ymatebol yn cuddio cynnwys y tu allan i'r porth gwylio o dorbwynt penodol ac i lawr. Uwchben y torbwynt hwnnw, bydd y cynnwys oddi mewn yn ymddwyn fel arfer. Er enghraifft, .offcanvas-lg
yn cuddio cynnwys mewn cynfas o dan y torbwynt lg
, ond yn dangos y cynnwys uwchben y lg
torbwynt.
Ymatebol oddi ar y cynfas
Mae hyn yn cynnwys o fewn .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>
Mae dosbarthiadau ymatebol oddi ar y cynfas ar gael ar draws pob torbwynt.
.offcanvas
.offcanvas-sm
.offcanvas-md
.offcanvas-lg
.offcanvas-xl
.offcanvas-xxl
Lleoliad
Nid oes lleoliad rhagosodedig ar gyfer cydrannau offcanvas, felly mae'n rhaid i chi ychwanegu un o'r dosbarthiadau addasu isod.
.offcanvas-start
yn gosod oddi ar y cynfas ar ochr chwith y porth gwylio (a ddangosir uchod).offcanvas-end
yn gosod oddi ar y cynfas ar ochr dde'r olygfan.offcanvas-top
yn gosod oddi ar y cynfas ar ben y porth gwylio.offcanvas-bottom
yn gosod oddi ar y cynfas ar waelod y porth gwylio
Rhowch gynnig ar yr enghreifftiau uchaf, dde a gwaelod isod.
Top oddi ar y cynfas
<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 dde
<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>
gwaelod oddi ar y cynfas
<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>
Hygyrchedd
Gan mai deialog moddol yw'r panel offcanvas yn gysyniadol, gwnewch yn siŵr eich bod yn ychwanegu aria-labelledby="..."
—gan gyfeirio at deitl y cynfas—at .offcanvas
. Sylwch nad oes angen i chi ychwanegu role="dialog"
gan ein bod eisoes yn ei ychwanegu trwy JavaScript.
CSS
Newidynnau
Ychwanegwyd yn v5.2.0Fel rhan o ddull newidynnau CSS esblygol Bootstrap, mae offcanvas bellach yn defnyddio newidynnau CSS lleol ymlaen ar .offcanvas
gyfer addasu amser real gwell. Mae gwerthoedd ar gyfer y newidynnau CSS yn cael eu gosod trwy Sass, felly mae addasu Sass yn dal i gael ei gefnogi hefyd.
--#{$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};
Newidynnau Sass
$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;
Defnydd
Mae'r ategyn offcanvas yn defnyddio ychydig o ddosbarthiadau a phriodoleddau i drin y codi trwm:
.offcanvas
yn cuddio'r cynnwys.offcanvas.show
yn dangos y cynnwys.offcanvas-start
yn cuddio'r oddi ar y cynfas ar y chwith.offcanvas-end
yn cuddio'r oddi ar y cynfas ar y dde.offcanvas-top
yn cuddio'r offcanvas ar y brig.offcanvas-bottom
yn cuddio'r offcanvas ar y gwaelod
Ychwanegu botwm diswyddo gyda'r data-bs-dismiss="offcanvas"
priodoledd, sy'n sbarduno ymarferoldeb JavaScript. Byddwch yn siwr i ddefnyddio'r <button>
elfen ag ef ar gyfer ymddygiad priodol ar draws pob dyfais.
Trwy briodoleddau data
Toglo
Ychwanegu data-bs-toggle="offcanvas"
a data-bs-target
neu href
at yr elfen i aseinio rheolaeth o un elfen oddi ar y cynfas yn awtomatig. Mae'r data-bs-target
briodwedd yn derbyn dewisydd CSS i gymhwyso'r offcanvas iddo. Gwnewch yn siŵr eich bod chi'n ychwanegu'r dosbarth offcanvas
at yr elfen offcanvas. Os hoffech iddo agor diofyn, ychwanegwch y dosbarth ychwanegol show
.
Diystyru
Gellir cyflawni diswyddiad gyda'r data
priodoledd ar fotwm o fewn y cynfas fel y dangosir isod:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
neu ar fotwm y tu allan i'r cynfas gan ddefnyddio'r hyn a data-bs-target
ddangosir isod:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#my-offcanvas" aria-label="Close"></button>
Trwy JavaScript
Galluogi â llaw gyda:
const offcanvasElementList = document.querySelectorAll('.offcanvas')
const offcanvasList = [...offcanvasElementList].map(offcanvasEl => new bootstrap.Offcanvas(offcanvasEl))
Opsiynau
Gan y gellir trosglwyddo opsiynau trwy briodoleddau data neu JavaScript, gallwch atodi enw opsiwn i data-bs-
, fel yn data-bs-animation="{value}"
. Gwnewch yn siŵr eich bod yn newid math achos yr enw opsiwn o “ camelCase ” i “ kebab-case ” wrth basio'r opsiynau trwy briodoleddau data. Er enghraifft, defnyddiwch data-bs-custom-class="beautifier"
yn lle data-bs-customClass="beautifier"
.
O Bootstrap 5.2.0, mae'r holl gydrannau'n cefnogi priodoledd data neilltuedig arbrofoldata-bs-config
a all gynnwys cyfluniad cydran syml fel llinyn JSON. Pan fydd gan elfen data-bs-config='{"delay":0, "title":123}'
a data-bs-title="456"
phriodoleddau, y gwerth terfynol title
fydd 456
a bydd y priodoleddau data ar wahân yn diystyru'r gwerthoedd a roddir ar data-bs-config
. Yn ogystal, mae priodoleddau data presennol yn gallu cynnwys gwerthoedd JSON fel data-bs-delay='{"show":0,"hide":150}'
.
Enw | Math | Diofyn | Disgrifiad |
---|---|---|---|
backdrop |
boolean neu'r llinynstatic |
true |
Rhowch gefndir ar y corff tra bod oddi ar y cynfas ar agor. Fel arall, nodwch static ar gyfer cefndir nad yw'n cau'r oddi ar y cynfas pan gaiff ei glicio. |
keyboard |
boolaidd | true |
Yn cau'r allcanvas pan fydd allwedd dianc yn cael ei wasgu. |
scroll |
boolaidd | false |
Caniatáu i'r corff sgrolio tra bod y cynfas ar agor. |
Dulliau
Dulliau a thrawsnewidiadau anghydamserol
Mae pob dull API yn asyncronaidd ac yn dechrau cyfnod pontio . Maen nhw'n dychwelyd at y galwr cyn gynted ag y bydd y cyfnod pontio wedi dechrau ond cyn iddo ddod i ben . Yn ogystal, bydd galwad dull ar gydran trawsnewid yn cael ei anwybyddu .
Yn actifadu'ch cynnwys fel elfen offcanvas. Yn derbyn opsiwn dewisol object
.
Gallwch greu enghraifft oddi ar gynfas gyda'r lluniwr, er enghraifft:
const bsOffcanvas = new bootstrap.Offcanvas('#myOffcanvas')
Dull | Disgrifiad |
---|---|
getInstance |
Dull statig sy'n eich galluogi i gael yr enghraifft oddi ar y cynfas yn gysylltiedig ag elfen DOM. |
getOrCreateInstance |
Dull statig sy'n eich galluogi i gael yr enghraifft offcanvas yn gysylltiedig ag elfen DOM, neu greu un newydd rhag ofn na chafodd ei gychwyn. |
hide |
Yn cuddio elfen allcanvas. Yn dychwelyd i'r galwr cyn i'r elfen offcanvas gael ei chuddio mewn gwirionedd (hy cyn i'r hidden.bs.offcanvas digwyddiad ddigwydd). |
show |
Yn dangos elfen oddi ar y cynfas. Yn dychwelyd i'r galwr cyn i'r elfen offcanvas gael ei dangos mewn gwirionedd (hy cyn i'r shown.bs.offcanvas digwyddiad ddigwydd). |
toggle |
Toglo elfen oddi ar gynfas i'w dangos neu ei chuddio. Yn dychwelyd i'r galwr cyn i'r elfen offcanvas gael ei dangos neu ei chuddio (hy cyn i'r digwyddiad shown.bs.offcanvas neu'r hidden.bs.offcanvas digwyddiad ddigwydd). |
Digwyddiadau
Mae dosbarth allcanvas Bootstrap yn datgelu rhai digwyddiadau i'w cysylltu ag ymarferoldeb allcanvas.
Math o ddigwyddiad | Disgrifiad |
---|---|
hide.bs.offcanvas |
Mae'r digwyddiad hwn yn cael ei danio ar unwaith pan fydd y hide dull wedi'i alw. |
hidden.bs.offcanvas |
Mae'r digwyddiad hwn yn cael ei danio pan fydd elfen offcanvas wedi'i chuddio rhag y defnyddiwr (bydd yn aros i'r trawsnewidiadau CSS gael eu cwblhau). |
hidePrevented.bs.offcanvas |
Mae'r digwyddiad hwn yn cael ei danio pan fydd y cynfas yn cael ei ddangos, ei gefndir yw static a bydd clic y tu allan i'r cynfas yn cael ei berfformio. Mae'r digwyddiad hefyd yn cael ei danio pan fydd yr allwedd dianc yn cael ei wasgu a'r keyboard opsiwn wedi'i osod i false . |
show.bs.offcanvas |
Mae'r digwyddiad hwn yn tanio ar unwaith pan show elwir y dull enghraifft. |
shown.bs.offcanvas |
Mae'r digwyddiad hwn yn cael ei danio pan fydd elfen allcanvas wedi'i gwneud yn weladwy i'r defnyddiwr (bydd yn aros i'r trawsnewidiadau CSS gael eu cwblhau). |
const myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', event => {
// do something...
})