Компонент Сайдбар вне холста
Создание боковой панели «вне холста». Модификаторы. Анимационные режимы. Панель Off-canvas идеально подходит для мобильных навигаций.
Off-canvas: Использование
Чтобы применить компонент Off-canvas,
добавьте атрибут uk-offcanvas
к родительскому элементу <div>
и используйте следующие классы.
Класс | Описание |
---|---|
.uk-offcanvas-bar |
Добавьте этот класс к дочернему элементу <div> . |
.uk-offcanvas-close |
Добавьте этот класс и атрибут uk-close к элементу <a> или <button> , чтобы создать кнопку закрытия и включить ее функциональность. |
Вы можете использовать любой элемент для переключения боковой панели Off-canvas.
Для того чтобы включить необходимый JavaScript, добавьте атрибут uk-toggle
.
Элемент <a>
должен быть связан с идентификатором (id) контейнера offcanvas.
Если вы используете другой элемент, например кнопку,
просто добавьте атрибут uk-toggle="target: #ID"
, указав идентификатор контейнера offcanvas.
<body>
<!-- Это кнопка переключения off-canvas -->
<button uk-toggle="target: #my-id" type="button"></button>
<!-- Это якорь, переключающий off-canvas -->
<a href="#my-id" uk-toggle></a>
<!-- Это off-canvas -->
<div id="my-id" uk-offcanvas>
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
</div>
</div>
</body>
Модификатор «Overlay»
Перекрытие. Затемнение
Чтобы при открытии панели Off-canvas добавить оверлей,
наложение перекрывающее страницу, добавьте параметр overlay: true
в атрибут uk-offcanvas
.
<div id="my-id" uk-offcanvas="overlay: true">
...
</div>
Off-canvas и Overlay
<button class="uk-button uk-button-default" type="button" uk-toggle="target: #offcanvas-overlay">Открыть</button>
<div id="offcanvas-overlay" uk-offcanvas="overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Фреймворк UIkit 3</h3>
<p>Это было сказано с таким сарказмом, что Леночка поежилась при воспоминании о словах любви. Он никогда не простит его за то, что та посмела влюбиться в другого мужчину.</p>
<p>Родители лучшей подруги также настаивали на присутствии Гогира, так что ей ничего не оставалось делать, кроме как подчиниться желанию окружающих. Всем стал известен ее роман с мэром городка, где они жили.</p>
</div>
</div>
Модификатор «Flip»
Открытие Offcanvas с правой стороны
Добавьте параметр flip: true
к атрибуту uk-offcanvas
,
чтобы отрегулировать его расположение так, чтобы открытие сайдбара «вне холста» происходило с правой стороны.
<div id="my-id" uk-offcanvas="flip: true">...</div>
Смена позиции. Появление боковой панели с правого края
<button class="uk-button uk-button-default" type="button" uk-toggle="target: #offcanvas-flip">Открыть</button>
<div id="offcanvas-flip" uk-offcanvas="flip: true; overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Супер заголовок</h3>
<p>Спокойный и привыкший командовать, он быстро организовал для Стен лучший номер и даже проводил до камина.</p>
<p>Жизненный порыв можно сравнить с электрическим разрядом, с метеоритом, который, ослепительно сгорая, рассыпается на части. Трудно было указать какое-нибудь биологическое открытие, обязанное чистому рассуждению. Эти затруднения и эти противоречия происходят потому, что мы применяем обычные формы нашей мысли.</p>
<p>Какой-нибудь сверхчеловеческий разум мог бы вычислить для любого момента положение любой точки.</p>
</div>
</div>
Анимационные режимы
По умолчанию панель Off-canvas при появлении "скользит". Вы можете выбирать между различными режимами анимации для появления панели вне холста. Просто добавьте один из следующих атрибутов.
Параметр | Описание |
---|---|
mode: slide |
Off-canvas выдвигается и накладывается на контент сверху. Это режим "по умолчанию". |
mode: push |
Off-canvas выдвигается и толкает сайт, сдвигая всю страницу в сторону. |
mode: reveal |
Страница сдвигается раскрывая Off-canvas. |
mode: none |
Off-canvas появляется и накладывает контент без анимации. |
<div id="my-id" uk-offcanvas="mode: push">...</div>
<button class="uk-button uk-button-default uk-margin-small-right" type="button"
uk-toggle="target: #offcanvas-slide">Slide</button>
<button class="uk-button uk-button-default uk-margin-small-right" type="button"
uk-toggle="target: #offcanvas-push">Push</button>
<button class="uk-button uk-button-default uk-margin-small-right" type="button"
uk-toggle="target: #offcanvas-reveal">Reveal</button>
<button class="uk-button uk-button-default uk-margin-small-right" type="button"
uk-toggle="target: #offcanvas-none">None</button>
<div id="offcanvas-slide" uk-offcanvas="overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Заголовок</h3>
<p>Она ведет себя очень странно в последнее время, а я не могу от нее добиться ни...</p>
<p>Таким образом, здесь ничто не создается, ни форма, ни вещество; то, что есть в группе, то и будет, понимая под тем, что есть.</p>
</div>
</div>
<div id="offcanvas-push" uk-offcanvas="mode: push; overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Название</h3>
<p>Поэтому-то возможно было бы предположить, чтобы поток времени помчался с бесконечной быстротой. В зале горел неяркий свет, звучала медленная романтическая мелодия и пары танцующих плавно двигались в такт музыке.</p>
<p>Это уже не из области мысли, а из области переживаемого. Это уже не отношение, а нечто абсолютное.</p>
</div>
</div>
<div id="offcanvas-reveal" uk-offcanvas="mode: reveal; overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Off-canvas</h3>
<p>Она просто оставляет их в стороне, потому ли, что считает их слишком слабыми, или потому, что сохраняет право заняться ими после.</p>
<p>Определенные контуры, приписываемые нами предмету, получающему таким образом индивидуальность. Мне даже пришлось отдать тебе платье, чтобы ты не ходила в тех лохмотьях, которые он предпочитает.</p>
</div>
</div>
<div id="offcanvas-none" uk-offcanvas="mode: none; overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" uk-close></button>
<h3>Off-canvas</h3>
<p>В наши намерения не входит приводить здесь доказательства в пользу трансформизма. Мы укажем только в двух словах, почему в настоящей работе мы принимаем.</p>
<p>Она состоит главным образом в констатировании отношений идеального родства и в утверждении, что там, где имеется отношение.</p>
</div>
</div>
Off-canvas и Nav
Off-canvas меню
Вы можете использовать компонент навигационного меню Nav внутри панели сайдбара Off-canvas для создания мобильной навигации.
<div id="my-id" uk-offcanvas>
<div class="uk-offcanvas-bar">
<ul class="uk-nav uk-nav-default">...</ul>
</div>
</div>
<button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #offcanvas-nav-primary">Primary Nav</button>
<button class="uk-button uk-button-default" type="button" uk-toggle="target: #offcanvas-nav">Default Nav</button>
<div id="offcanvas-nav-primary" uk-offcanvas="overlay: true">
<div class="uk-offcanvas-bar uk-flex uk-flex-column">
<ul class="uk-nav uk-nav-primary uk-nav-center uk-margin-auto-vertical">
<li class="uk-active"><a href="#">Активненький</a></li>
<li class="uk-parent">
<a href="#">Родительский</a>
<ul class="uk-nav-sub">
<li><a href="#">Подменюшка</a></li>
<li><a href="#">Названице ух!</a></li>
</ul>
</li>
<li class="uk-nav-header">Заголовок</li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: table"></span> Браво вам!</a></li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: thumbnails"></span> Элегантно</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: trash"></span> Отдельный пункт</a></li>
</ul>
</div>
</div>
<div id="offcanvas-nav" uk-offcanvas="overlay: true">
<div class="uk-offcanvas-bar">
<ul class="uk-nav uk-nav-default">
<li class="uk-active"><a href="#">Активный пункт</a></li>
<li class="uk-parent">
<a href="#">Родительский пункт</a>
<ul class="uk-nav-sub">
<li><a href="#">Подменю</a></li>
<li><a href="#">Какое-то название</a></li>
</ul>
</li>
<li class="uk-nav-header">Название</li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: table"></span> Элемент меню</a></li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: thumbnails"></span> Пункт меню</a></li>
<li class="uk-nav-divider"></li>
<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: trash"></span> Отдельный пункт</a></li>
</ul>
</div>
</div>
Параметры для атрибута
При использовании компонента Off-canvas к атрибуту можно применить любой из этих параметров. Разделяйте несколько вариантов точкой с запятой. Для получения дополнительной информации ознакомьтесь с главой Конфигурация компонента.
Опции компонента
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
mode |
String | slide |
Анимационный режим Off-canvas: slide , reveal , push или none . |
flip |
Boolean | false |
Отображение Off-canvas с правой стороны. |
overlay |
Boolean | false |
Отображение Off-canvas вместе с наложением. |
esc-close |
Boolean | true |
Закрытие Off-canvas при нажатии кнопки Esc. |
bg-close |
Boolean | true |
Закрытие Off-canvas при клике на фон. |
container |
String | false |
Определите целевой контейнер с помощью селектора, чтобы указать, куда в DOM должен быть добавлен off-canvas.
Установка значения false предотвратит такое поведение.
|
mode
является Primary опцией.
Если mode
это единственный параметр в значении атрибута, то её ключ можно не использовать.
<span uk-offcanvas="push"></span>
JavaScript
Узнайте больше о использовании JavaScript в компонентах фреймворка UIkit 3.
Инициализация
UIkit.offcanvas(element, options);
События
Следующие события будут инициированы для элементов компонента «Off-canvas»:
Имя события | Описание |
---|---|
beforeshow |
Срабатывает перед отображением элемента. |
show |
Срабатывает после отображения элемента. |
shown |
Запускается после завершения анимации показанного элемента. |
beforehide |
Срабатывает до того, как элемент скрыт. |
hide |
Срабатывает после того, как началась анимация скрытия. |
hidden |
Срабатывает после того, как элемент скрыт. |
Методы
Для компонента «Off-canvas» доступны следующие методы:
Show
UIkit.offcanvas(element).show();
Показывает Offcanvas.
Hide
UIkit.offcanvas(element).hide();
Скрывает Offcanvas.
Доступность
Компонент Offcanvas придерживается Dialog (Modal) Pattern и автоматически устанавливает соответствующие роли, состояния и свойства WAI-ARIA.
-
У панели offcanvas (offcanvas bar) есть роль
dialog
, а если у offcanvas есть оверлей, свойствоaria-modal
.
Компонент Close автоматически устанавливает соответствующие роли и свойства WAI-ARIA.
-
Значок закрытия имеет свойство
aria-label
, а если используется элемент<a>
, то рольbutton
.
Взаимодействие с клавиатурой
Доступ к компоненту Offcanvas можно получить с клавиатуры, используя следующие клавиши.
-
esc закрывает offcanvas.
Это поведение отключено, если установлен параметрesc-close: false
.