Off-canvas
Незаменимый и бесценный помощник компонент Off-canvas (вертикальная, правосторонняя и левостороняя, анимированная и адаптивная, боковая панель навигации) - сайдбар вне холста, вертикальная отзывчивая навигационная панель, сдвигаемая, правосторонняя и левостороняя, с выпадающим меню и с аккордеоном, анимированная и адаптивная боковая панель навигации.
Компонент Off-canvas идеально подходит для построения мобильной навигации, аналогичной тем, которые популярны во многих мобильных приложениях, где присутствует кнопка в верхнем левом углу, открывающая боковую панель с меню *off-canvas.
Использование
Компонент Off-canvas включает в себя overlay (оверлей) и off-canvas bar.
| Класс | Описание |
|---|---|
.uk-offcanvas |
Добавьте этот класс к элементу <div>, чтобы создать bar container и оверлей, перекрывающий страницу. Также необходимо добавить уникальный идентификатор (ID), чтобы можно было переключать боковую панель *sidebar off-canvas. |
.uk-offcanvas-bar |
Добавьте этот класс к дочернему элементу <div>, чтобы создать боковую панель вне холста off-canvas bar. |
Вы можете использовать любой HTML-элемент для переключения боковой панели off-canvas. Элемент <a> должен быть "связан" с идентификатором контейнера off-canvas. Чтобы включить необходимый JavaScript, добавьте атрибут data-uk-offcanvas. Если вы используете другой элемент, например кнопку, добавьте атрибут data-uk-offcanvas="{target:'#ID'}", в котором указывается идентификатор контейнера off-canvas.
Пример
Открыть ссылкойРазметка
<!-- Это якорная ссылка, переключающая off-canvas sidebar -->
<a href="#offcanvas-id" data-uk-offcanvas>...</a>
<!-- Это кнопка переключения off-canvas sidebar -->
<button class="uk-button" data-uk-offcanvas="{target:'#offcanvas-id'}">...</button>
<!-- Это off-canvas sidebar -->
<div id="offcanvas-id" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
...
</div>
</div>
Режимы анимации
Вы можете выбрать между четырьмя различными режимами анимации для off-canvas bar:
Пример
Push (По умолчанию) Slide Reveal NoneРазметка
<a href="#my-id" data-uk-offcanvas="{mode:'slide'}">...</a>
<a href="#my-id" data-uk-offcanvas="{mode:'reveal'}">...</a>
<a href="#my-id" data-uk-offcanvas="{mode:'none'}">...</a>
Модификатор «Flip»
Добавьте класс .uk-offcanvas-bar-flip к off-canvas bar, чтобы настроить его так, чтобы он скользил справа.
Пример
Разметка
<div id="offcanvas-id" class="uk-offcanvas">
<div class="uk-offcanvas-bar uk-offcanvas-bar-flip">
...
</div>
</div>
Off-canvas и Nav
Off-canvas sidebar может содержать навигацию из компонента Nav. Добавьте класс .uk-nav-offcanvas для стилизации навигации в соответствии с контекстом off-canvas.
Пример
Разметка
<!-- Это кнопка переключения off-canvas sidebar -->
<button class="uk-button" data-uk-offcanvas="{target:'#offcanvas-id'}">...</button>
<!-- Это off-canvas sidebar -->
<div id="offcanvas-id" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
<ul class="uk-nav uk-nav-offcanvas" data-uk-nav>
...
</ul>
</div>
</div>
Off-canvas и Panel
Вы можете разместить любой пользовательский контент внутри off-canvas bar. Просто оберните его в <div> и добавьте класс .uk-panel.
Пример
Разметка
<!-- Это кнопка переключения off-canvas sidebar -->
<button class="uk-button" data-uk-offcanvas="{target:'#offcanvas-id'}">...</button>
<!-- Это off-canvas sidebar -->
<div id="offcanvas-id" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
<div class="uk-panel">
...
</div>
</div>
</div>
JavaScript
Вы можете открывать и закрывать offcanvas с помощью JavaScript:
// Показать off-canvas, соответствующий переданному селектору CSS
UIkit.offcanvas.show('#my-id');
// Скрыть любые активные offcanvas. Установите force в true, если вы не хотите никакой анимации.
UIkit.offcanvas.hide([force = false])
JavaScript options
Это пример того, как установить параметры через атрибут:
data-uk-offcanvas="{mode:'slide'}"
| Option | Possible value | Default | Description |
|---|---|---|---|
mode |
'push', 'slide', 'reveal', 'none' | push | Offcanvas bar appear effect mode |
Events
| Name | Parameter | Description |
|---|---|---|
show.uk.offcanvas |
event, panel, bar | On offcanvas show |
hide.uk.offcanvas |
event, panel, bar | On offcanvas hide |