Offcanvas
Бірнеше сыныптар мен JavaScript плагинімен шарлау, сауда арбалары және т.б. үшін жобаңызға жасырын бүйірлік тақталарды жасаңыз.
Бұл қалай жұмыс істейді
Offcanvas — JavaScript арқылы көру терезесінің сол, оң, жоғарғы немесе төменгі жиегінен көріну үшін ауыстыруға болатын бүйірлік тақта құрамдас бөлігі. Түймешіктер немесе якорьдер сіз ауыстыратын белгілі бір элементтерге тіркелген триггерлер ретінде пайдаланылады және data
атрибуттар біздің JavaScript-ті шақыру үшін пайдаланылады.
- Offcanvas модальдармен бірдей JavaScript кодының кейбірін бөліседі. Тұжырымдама бойынша олар өте ұқсас, бірақ олар бөлек плагиндер.
- Сол сияқты, offcanvas мәнерлері мен өлшемдері үшін кейбір бастапқы Sass айнымалылары модаль айнымалыларынан мұраланған.
- Көрсетілгенде, offcanvas сырт кескінді жасыру үшін басуға болатын әдепкі фонды қамтиды.
- Модальдерге ұқсас, бір уақытта тек бір кескіннен тыс кескінді көрсетуге болады.
Ескерту! CSS анимацияларды қалай өңдейтінін ескере отырып , элементті margin
немесе оны пайдалана алмайсыз . Оның орнына классты тәуелсіз орау элементі ретінде пайдаланыңыз.translate
.offcanvas
prefers-reduced-motion
медиа сұрауына байланысты. Арнайы мүмкіндіктер құжаттамасының қысқартылған қозғалыс бөлімін қараңыз
.
Мысалдар
Offcanvas құрамдастары
Төменде әдепкі бойынша көрсетілген offcanvas мысалы берілген ( .show
қосу арқылы .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>
Денені айналдыру
<body>
Сыртқы кескін және оның фоны көрінген кезде элементті айналдыру өшіріледі . data-bs-scroll
Айналдыруды қосу үшін төлсипатты пайдаланыңыз <body>
.
Денені айналдыруы бар кенептен тыс
Бұл опцияның әрекетін көру үшін беттің қалған бөлігін айналдырып көріңіз.
<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>
Қараңғы кенеп
v5.2.0 нұсқасына қосылдыҚараңғы шарлау жолақтары сияқты әртүрлі контексттерге жақсырақ сәйкестендіру үшін сыртқы кескіндерді қызметтік бағдарламалармен өзгертіңіз. Мұнда біз қараңғы кенеппен дұрыс сәндеу үшін .text-bg-dark
және .offcanvas
үшін .btn-close-white
қосамыз . .btn-close
Егер сізде ашылмалы тізімдер болса, оған қосуды да .dropdown-menu-dark
қарастырыңыз .dropdown-menu
.
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 нұсқасына қосылдыЖауапты offcanvas сыныптары мазмұнды көрсетілген тоқтау нүктесінен және төменнен қарау терезесінен тыс жасырады. Бұл тоқтау нүктесінен жоғары, ішіндегі мазмұн әдеттегідей әрекет етеді. Мысалы, үзіліс нүктесінің .offcanvas-lg
астындағы кенептен тыс мазмұнды жасырады lg
, бірақ үзіліс нүктесінің үстіндегі мазмұнды көрсетеді lg
.
Responsive offcanvas
Бұл мазмұн ішіндегі мазмұн .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
кенептен тыс кескінді көру алаңының оң жағына орналастырады.offcanvas-top
сыртқы кенепті көру алаңының жоғарғы жағына орналастырады.offcanvas-bottom
сыртқы кенепті көру алаңының төменгі жағына орналастырады
Төмендегі жоғарғы, оң және төменгі мысалдарды қолданып көріңіз.
Кенептен тыс жоғарғы
<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>
Төменгі кенептен тыс
<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
Төлсипат data-bs-target
offcanvas қолдану үшін 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}'
.
Аты | Түр | Әдепкі | Сипаттама |
---|---|---|---|
backdrop |
логикалық немесе жолstatic |
true |
Offcanvas ашық кезде денеге фон жағыңыз. Немесе, static басқан кезде кенеп сыртын жаппайтын фон үшін көрсетіңіз. |
keyboard |
логикалық | true |
Escape пернесі басылғанда, сыртқы кескінді жабады. |
scroll |
логикалық | false |
Offcanva ашық кезде денені айналдыруға рұқсат етіңіз. |
Әдістері
Асинхронды әдістер мен ауысулар
Барлық API әдістері асинхронды және өтуді бастайды . Олар қоңырау шалушыға ауысу басталған бойда, бірақ аяқталмай тұрып қайтады . Сонымен қатар, өтпелі құрамдастағы әдіс шақыруы еленбейді .
Қосымша ақпарат алу үшін біздің JavaScript құжаттамасын қараңыз .
Мазмұныңызды canvas элементі ретінде белсендіреді. Қосымша опцияларды қабылдайды object
.
Сіз конструктормен offcanvas данасын жасай аласыз, мысалы:
const bsOffcanvas = new bootstrap.Offcanvas('#myOffcanvas')
Әдіс | Сипаттама |
---|---|
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 сыныбы offcanvas функциясына қосылу үшін бірнеше оқиғаларды көрсетеді.
Оқиға түрі | Сипаттама |
---|---|
hide.bs.offcanvas |
Бұл оқиға hide әдіс шақырылған кезде бірден іске қосылады. |
hidden.bs.offcanvas |
Бұл оқиға offcanvas элементі пайдаланушыдан жасырылған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді). |
hidePrevented.bs.offcanvas |
Бұл оқиға canvas сыртында көрсетілгенде, оның фонында static және сыртында шерту орындалғанда іске қосылады. Оқиға сонымен қатар escape пернесі басылғанда және keyboard опция параметріне орнатылғанда іске қосылады false . |
show.bs.offcanvas |
show Бұл оқиға даналық әдісі шақырылған кезде бірден іске қосылады. |
shown.bs.offcanvas |
Бұл оқиға offcanvas элементі пайдаланушыға көрінетін болған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді). |
const myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', event => {
// do something...
})