Offcanvas
Бир нече класстар жана биздин JavaScript плагинибиз менен навигация, соода арабалары жана башкалар үчүн долбооруңузга жашыруун каптал тилкелерин түзүңүз.
Бул кантип иштейт
Offcanvas - бул JavaScript аркылуу которуштурууга мүмкүн болгон каптал панелинин компоненти, аны көрүү терезесинин сол, оң, жогору же ылдый жагында пайда болот. Баскычтар же анкерлер сиз которуштуруучу белгилүү элементтерге тиркелген триггерлер катары колдонулат, ал эми data
атрибуттар биздин JavaScript'ти чакыруу үчүн колдонулат.
- Offcanvas модалдар сыяктуу эле JavaScript кодунун айрымдарын бөлүшөт. Концепция боюнча, алар абдан окшош, бирок алар өзүнчө плагиндер.
- Ошо сыяктуу эле, offcanvas стилдери жана өлчөмдөрү үчүн Sass булак өзгөрмөлөрү модалдык өзгөрмөлөрдөн мураска алынган.
- Көрсөтүлгөндө, offcanvas сырткы канвасты жашыруу үчүн чыкылдатса боло турган демейки көшөгө камтыйт.
- Модалдарга окшош, бир эле учурда бир гана тышкаркы сүрөттү көрсөтүүгө болот.
Көңүл бургула! margin
CSS анимацияларды кантип иштетээрин эске алып , translate
сиз .offcanvas
элементти колдоно албайсыз . Анын ордуна, классты көз карандысыз таңуу элементи катары колдонуңуз.
prefers-reduced-motion
медиа суроосуна көз каранды. Биздин жеткиликтүүлүк документтерибиздин кыскартылган кыймыл бөлүмүн караңыз
.
Мисалдар
Offcanvas компоненттери
Төмөндө демейки боюнча көрсөтүлгөн offcanvas үлгүсү ( .show
on аркылуу .offcanvas
). Offcanvas жабуу баскычы бар башты колдоону жана кээ бир башталгычтар үчүн кошумча корпус классын камтыйт padding
. Мүмкүн болушунча четке кагуу аракеттери менен offcanvas аталыштарын кошууну же ачык эле четке кагуу аракетин көрсөтүүнү сунуштайбыз.
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>
Түз демо
.show
Класс менен элементте классты которуштуруучу JavaScript аркылуу offcanvas элементин көрсөтүү жана жашыруу үчүн төмөнкү баскычтарды колдонуңуз .offcanvas
.
.offcanvas
мазмунду жашырат (демейки).offcanvas.show
мазмунун көрсөтөт
href
Сиз атрибуту бар шилтемени же атрибуттуу баскычты колдоно аласыз data-bs-target
. Эки учурда тең data-bs-toggle="offcanvas"
талап кылынат.
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>
Денени жылдыруу
Offcanvas <body>
жана анын көшөгөсү көрүнгөндө элементти сыдыруу өчүрүлөт. data-bs-scroll
Жылдырууну иштетүү үчүн атрибутун колдонуңуз <body>
.
Дене сыдыруу менен Offcanvas
Бул опцияны иш жүзүндө көрүү үчүн барактын калган бөлүгүн жылдырып көрүңүз.
<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>
Денени жылдыруу жана фон
Сиз ошондой эле <body>
көрүнүүчү көшөгө менен сыдырууну иштете аласыз.
Сыдыруу менен фон
Бул опцияны иш жүзүндө көрүү үчүн барактын калган бөлүгүн жылдырып көрүңүз.
<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>
Статикалык фон
Көшөгө статикалык абалга коюлганда, анын сыртын чыкылдатканда, сырткы канвас жабылбайт.
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>
Dark offcanvas
v5.2.0 кошулганКараңгы навигация тилкелери сыяктуу ар кандай контексттерге жакшыраак дал келүү үчүн, тышкаркы сүрөттөрдүн көрүнүшүн коммуналдык программалар менен өзгөртүңүз. Бул жерде биз караңгы кенеп менен туура стилдештирүү үчүн .text-bg-dark
жана .offcanvas
менен .btn-close-white
кошобуз . .btn-close
Эгерде сизде ылдый түшүүчү тизмелер бар болсо, ага кошууну да карап .dropdown-menu-dark
көрүңүз .dropdown-menu
.
Offcanvas
Offcanvas мазмунун бул жерге жайгаштырыңыз.
<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>
Жооптуу
v5.2.0 кошулганResponsive offcanvas класстары мазмунду көрүү портунун сыртында көрсөтүлгөн чекиттен жана ылдыйдан жашырат. Ошол үзүлүү чекинен жогору, ичиндеги мазмун адаттагыдай иштейт. Мисалы, .offcanvas-lg
үзгүлтүккө учураган чектин ылдый жагындагы мазмунду жашырат lg
, бирок үзүлүү чекитинин үстүндөгү мазмунду көрсөтөт lg
.
Жооптуу канвас
Бул андагы мазмун .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>
Жауаптуу offcanvas класстары ар бир үзүү чекити үчүн жеткиликтүү.
.offcanvas
.offcanvas-sm
.offcanvas-md
.offcanvas-lg
.offcanvas-xl
.offcanvas-xxl
Жайгаштыруу
Offcanvas компоненттери үчүн демейки жайгаштыруу жок, андыктан төмөндөгү модификатор класстарынын бирин кошушуңуз керек.
.offcanvas-start
көрүнүш терезесинин сол жагына тышкаркы сүрөттөрдү жайгаштырат (жогоруда көрсөтүлгөн).offcanvas-end
көрүнүш аянтчасынын оң жагына canvas жайгаштырат.offcanvas-top
көрүнүш аянтчасынын жогору жагына полотно жок.offcanvas-bottom
көрүнүш аянтчасынын ылдый жагына полотно жок
Төмөндө жогору, оң жана төмөнкү мисалдарды байкап көрүңүз.
Offcanvas top
<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 туура
<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 түбү
<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>
Жеткиликтүүлүк
Offcanvas панели концептуалдык түрдө модалдык диалог болгондуктан, сөзсүз түрдө aria-labelledby="..."
-offcanvas аталышына шилтеме кылууну кошуңуз .offcanvas
. Кошуунун кереги жок экенин эске алыңыз, role="dialog"
анткени биз аны JavaScript аркылуу кошконбуз.
CSS
Өзгөрмөлөр
v5.2.0 кошулганBootstrap өнүгүп жаткан CSS өзгөрмөлөрүнүн бир бөлүгү катары, offcanvas эми .offcanvas
реалдуу убакытта жакшыртылган ыңгайлаштыруу үчүн жергиликтүү CSS өзгөрмөлөрүн колдонот. CSS өзгөрмөлөрүнүн маанилери Sass аркылуу коюлат, ошондуктан Sass ыңгайлаштыруу дагы деле колдоого алынат.
--#{$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 өзгөрмөлөрү
$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;
Колдонуу
Offcanvas плагини оор жүктөрдү көтөрүү үчүн бир нече класстарды жана атрибуттарды колдонот:
.offcanvas
мазмунун жашырат.offcanvas.show
мазмунун көрсөтөт.offcanvas-start
сол жактагы полотнолорду жашырат.offcanvas-end
оң жактагы полотнолорду жашырат.offcanvas-top
үстүнкү полотносун жашырат.offcanvas-bottom
астына полотно жашырат
data-bs-dismiss="offcanvas"
JavaScript функциясын иштеткен атрибуту менен четке кагуу баскычын кошуңуз . <button>
Бардык түзмөктөрдө туура жүрүм-туруму үчүн аны менен элементти колдонууну унутпаңыз.
Маалымат атрибуттары аркылуу
Которуу
Бир canvas элементин башкарууну автоматтык түрдө дайындоо үчүн элементке кошуу data-bs-toggle="offcanvas"
жана a data-bs-target
же . href
Атрибут offcanvas data-bs-target
колдонуу үчүн CSS селекторун кабыл алат. offcanvas
Offcanvas элементине классты кошуңуз . Эгер анын демейки ачылуусун кааласаңыз, кошумча классты кошуңуз show
.
Иштен чыгаруу
Төмөндө көрсөтүлгөндөй , тышкаркы сүрөттүн ичиндегиdata
баскычтагы атрибут менен иштен чыгарууга болот:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
же сырткы кнопкага төмөндө data-bs-target
көрсөтүлгөндөй колдонуңуз:
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#my-offcanvas" aria-label="Close"></button>
JavaScript аркылуу
Кол менен иштетүү:
const offcanvasElementList = document.querySelectorAll('.offcanvas')
const offcanvasList = [...offcanvasElementList].map(offcanvasEl => new bootstrap.Offcanvas(offcanvasEl))
Параметрлер
Опциялар берилиш атрибуттары же JavaScript аркылуу өтүшү мүмкүн болгондуктан, сиз дарегинде болгондой, параметр атын кошо data-bs-
аласыз data-bs-animation="{value}"
. Опцияларды маалымат атрибуттары аркылуу өткөрүп жатканда варианттын аталышынын регистр түрүн “ camelCase ”ден “ kebab-case ”ге өзгөртүүнү унутпаңыз. Мисалы, data-bs-custom-class="beautifier"
ордуна колдонуңуз data-bs-customClass="beautifier"
.
Bootstrap 5.2.0 версиясында, бардык компоненттер JSON сап катары жөнөкөй компонент конфигурациясын камтый турган эксперименталдык сакталган маалымат атрибутун колдойт. data-bs-config
Элементте data-bs-config='{"delay":0, "title":123}'
жана data-bs-title="456"
атрибуттары болгондо, акыркы title
маани болот 456
жана өзүнчө маалымат атрибуттары берилген маанилерди жокко чыгарат data-bs-config
. Мындан тышкары, учурдагы маалымат атрибуттары сыяктуу JSON маанилерин жайгаштыра алат data-bs-delay='{"show":0,"hide":150}'
.
аты | Type | Демейки | Description |
---|---|---|---|
backdrop |
логикалык же сапstatic |
true |
Offcanvas ачык турганда денеге фонду колдонуңуз. Же болбосо, static чыкылдатылганда тышкаркы сүрөттү жаппаган фон үчүн көрсөтүңүз. |
keyboard |
логикалык | true |
Escape баскычы басылганда, canvas сыртын жабат. |
scroll |
логикалык | false |
Offcanva ачык турганда денени сыдырууга уруксат бериңиз. |
Методдор
Асинхрондук методдор жана өтүүлөр
Бардык API ыкмалары асинхрондуу жана өтүүнү баштайт . Алар чалуучуга өтүү башталаары менен, бирок ал бүтө электе кайтып келишет . Кошумчалай кетсек, өтүүчү компоненттеги ыкма чакырыгы этибарга алынбайт .
Көбүрөөк маалымат алуу үчүн биздин JavaScript документтерибизди караңыз .
Мазмунуңузду canvas сырткы элемент катары иштетет. Кошумча варианттарды кабыл алат object
.
Сиз конструктор менен offcanvas инстанциясын түзө аласыз, мисалы:
const bsOffcanvas = new bootstrap.Offcanvas('#myOffcanvas')
Метод | Description |
---|---|
getInstance |
DOM элементи менен байланышкан offcanvas инстанциясын алууга мүмкүндүк берген статикалык ыкма. |
getOrCreateInstance |
DOM элементи менен байланышкан offcanvas инстанциясын алууга же ал инициализацияланбаган учурда жаңысын түзүүгө мүмкүндүк берген статикалык ыкма. |
hide |
Offcanvas элементин жашырат. Offcanvas элементи чындыгында жашырылганга чейин (б.а. hidden.bs.offcanvas окуя болгонго чейин) чалуучуга кайтат. |
show |
Offcanvas элементин көрсөтөт. Offcanvas элементи иш жүзүндө көрсөтүлө электе (б.а. shown.bs.offcanvas окуя болгонго чейин) чалуучуга кайтат. |
toggle |
Offcanvas элементин көрсөтүүгө же жашырууга которот. Offcanvas элементи иш жүзүндө көрсөтүлө электе же жашырылганга чейин (б.а. shown.bs.offcanvas же hidden.bs.offcanvas окуя болгонго чейин) чалуучуга кайтат. |
Окуялар
Bootstrap'тин offcanvas классы canvas функциясына кирүү үчүн бир нече окуяларды ачып берет.
Окуя түрү | Description |
---|---|
hide.bs.offcanvas |
Бул окуя hide ыкма чакырылганда дароо өчүрүлөт. |
hidden.bs.offcanvas |
Бул окуя offcanvas элементи колдонуучудан жашырылганда иштетилет (CSS өтүүлөрү бүткүчө күтөт). |
hidePrevented.bs.offcanvas |
Бул окуя сырткы канвас көрсөтүлүп, анын көшөгөсү болуп static , сырттан чыкылдатуу аткарылганда иштетилет. Окуя ошондой эле качуу баскычы басылганда жана keyboard параметр орнотулганда өчүрүлөт false . |
show.bs.offcanvas |
Бул окуя show инстанция ыкмасы чакырылганда дароо күйөт. |
shown.bs.offcanvas |
Бул окуя canvas сыртындагы элемент колдонуучуга көрүнгөндөн кийин ишке ашат (CSS өтүүлөрү бүткүчө күтөт). |
const myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', event => {
// do something...
})