Переключатель контента
Переключатель. Динамический переход по различным областям содержимого.
Использование
Компонент Switcher состоит из нескольких переключателей и связанных с ними элементами контента, содержимого. Добавьте к элементу атрибут data-uk-switcher="{connect:'#ID'}"
, который содержит переключатели, с тем же идентификатором, который используется для элемента, содержащего элементы содержимого. Добавьте класс .uk-switcher
к тому же элементу. Обычно переключатель сочетается с другими компонентами, некоторые из которых будут показаны здесь.
Пример
Разметка
<!-- Это контейнер переключающих элементов -->
<ul data-uk-switcher="{connect:'#switcher-id'}">
<li class="uk-active"><a href="">...</a></li>
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер из элементов контента -->
<ul id="switcher-id" class="uk-switcher">
<li class="uk-active">...</li>
<li>...</li>
</ul>
Переключение содержимого/контента с активного пункта на любой другой пункт
В некоторых случаях бывает необходимо переключиться на другой раздел/секцию из активного пункта контента. Это возможно сделать с помощью атрибута data-uk-switcher-item
. Чтобы установить цель элемента, необходимо установить для data-*
атрибута номер соответствующего элемента контента.
Пример
- Приветик!
Перейти к следующему разделу контента - Какое счастье!
Мы можем переключиться на третий раздел контента - Удивительно!
Переключиться на предыдущий раздел контента - Вот это да!
А теперь перейдем к разделу 1
Разметка
<!-- Это навигация, содержащая переключающие элементы -->
<ul data-uk-switcher="{connect:'#switcher-id'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер элементов содержимого -->
<ul id="switcher-id" class="uk-switcher">
<li> ... <a href="" data-uk-switcher-item="0">...</a></li>
<li> ... <a href="" data-uk-switcher-item="1">...</a></li>
</ul>
next
и previous
переключает на соседние элементы.
Разметка
<li> ... <a href="" data-uk-switcher-item="next">...</a></li>
<li> ... <a href="" data-uk-switcher-item="previous">...</a></li>
Переключение сразу нескольких разделов/блоков
Также возможно связать несколько разделов контента. Просто расширьте параметр connect
с помощью идентификатора (ID) дополнительного контейнера.
Пример
Заголовок раздела 1
-
Привет из блока 1!
Далеко-далеко за словесными горами в стране...
-
Вау! Переключились на блок 1.
Эта парадигматическая страна, в которой...
-
Невероятно, но факт: блок 1.
Далеко-далеко за словесными горами в стране...
Заголовок раздела 2
-
Привет из блока 2!
Далеко-далеко за словесными горами в стране...
-
Вау! Переключились на блок 2.
Далеко-далеко за словесными горами в стране...
-
Невероятно, но факт: блок 2.
Эта парадигматическая страна, в которой...
Пример 2
-
Пункт Б, Раздел 1
Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу. -
Пункт В, Раздел 1
Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу.
-
Пункт А, Раздел 2
Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу. -
Пункт В, Раздел 2
Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу.
Разметка
<!-- Это навигация, содержащая переключающие элементы -->
<ul data-uk-switcher="{connect:'#my-id-one, #my-id-two'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнеры элементов контента -->
<ul id="my-id-one" class="uk-switcher">
<li>...</li>
</ul>
<ul id="my-id-two" class="uk-switcher">
<li>...</li>
</ul>
Анимации
Компонент Switcher позволяет добавлять различные анимации к элементам при переключении между ними. Все, что вам нужно сделать, это добавить параметр animation
в data-*
атрибут и указать анимацию, которую вы хотите использовать. Ознакомьтесь с доступными вариантами анимаций в таблице ниже.
Класс | Описание |
---|---|
fade |
Эффект плавного появления/исчезновения. |
scale |
Анимация элемента - эффект «scale-up». |
slide-top |
Переход элемента с эффектом скольжения сверху. |
slide-bottom |
Переход элемента с эффектом скольжения снизу. |
slide-left |
Переход элемента с эффектом скольжения слева. |
slide-right |
Переход элемента с эффектом скольжения справа. |
slide-horizontal |
Элементы скользят горизонтально, направление зависит от соседнего. |
slide-vertical |
Элементы скользят вертикально, направление зависит от соседнего. |
Примеры
Fade
- Приветик!
- Какое счастье!
- Превосходно!
Scale
- Приветик!
- Какое счастье!
- Превосходно!
Slide top
- Приветик!
- Какое счастье!
- Превосходно!
Slide bottom
- Приветик!
- Какое счастье!
- Превосходно!
Slide left
- Приветик!
- Какое счастье!
- Превосходно!
Slide right
- Приветик!
- Какое счастье!
- Превосходно!
Slide horizontal
- Приветик!
- Какое счастье!
- Превосходно!
Slide vertical
- Приветик!
- Какое счастье!
- Великолепно!
Разметка
<!-- Это контейнер переключающих элементов -->
<ul data-uk-switcher="{connect:'#my-id', animation: 'fade'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher">
<li>...</li>
</ul>
Пользовательские анимации
Вы также можете применять несколько анимаций с помощью классов uk-animation-*
из компонента Animation. Таким образом, вы даже можете создать свой собственный пользовательский класс для переходов switcher'-а.
Пример
- Приветик!
- Какое счастье!
- Великолепно!
Разметка
<!-- Это контейнер переключающих элементов -->
<ul data-uk-switcher="{connect:'#switcher-id', animation: 'uk-animation-fade, uk-animation-slide-left'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер содержащихся элементов -->
<ul id="switcher-id" class="uk-switcher">
<li>...</li>
</ul>
Switcher и Subnav
Переключатель switcher
можно использовать вместе с компонентом Subnav.
Пример
Разметка
<!-- Это subnav, содержащий переключающие элементы -->
<ul class="uk-subnav uk-subnav-pill" data-uk-switcher="{connect:'#my-id'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher">
<li>...</li>
</ul>
Switcher и Tab
В качестве исключения из правила добавьте атрибут data-uk-tab="{connect:'#ID'}"
, используя параметр «tab» вместо «switcher», к навигации с вкладками, чтобы объединить переключатель switcher
с Tab.
Пример
Разметка
<!-- Это вкладка навигации, содержащая переключаемые элементы -->
<ul class="uk-tab" data-uk-tab="{connect:'#my-id'}">
<li><a href="">...</a></li>
</ul>
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher uk-margin">
<li>...</li>
</ul>
.uk-tab-bottom
навигация и содержимое должны быть расположены в реверсивном *обратном порядке, чтобы содержимое отображалось над вкладками.
Вертикальные вкладки
Используйте компонент Grid для корректного отображения контента с вертикальной навигацией по вкладкам/табам.
Пример
Пример
<!-- Это левая вертикальная вкладка навигации -->
<div class="uk-grid">
<div class="uk-width-medium-1-2">
<!-- Это вертикальная навигация с вкладками, содержащая переключаемые элементы -->
<ul class="uk-tab uk-tab-left" data-uk-tab="{connect:'#my-id'}">...</ul>
</div>
<div class="uk-width-medium-1-2">
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher">...</ul>
</div>
</div>
<!-- Это правильная вертикальная навигация с вкладками -->
<div class="uk-grid">
<div class="uk-width-medium-1-2 uk-push-1-2">
<!-- Это вертикальная навигация с вкладками, содержащая переключаемые элементы -->
<ul class="uk-tab uk-tab-right" data-uk-tab="{connect:'#my-id'}">...</ul>
</div>
<div class="uk-width-medium-1-2 uk-pull-1-2">
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher">...</ul>
</div>
</div>
Switcher и Button
Переключатель switcher
также может быть применен к кнопкам или группам кнопок из компонента Button. Просто добавьте data-*
атрибут к элементу <div>
вокруг группы кнопок или к элементу с классом .button-group
.
Пример
Разметка
<!-- Это контейнер переключающих кнопок -->
<div data-uk-switcher="{connect:'#my-id'}">
<button class="uk-button" type="button">...</button>
</div>
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher uk-margin">...</ul>
<!-- Это группа кнопок, содержащая кнопки переключения -->
<div class="uk-button-group" data-uk-switcher="{connect:'#my-id'}">
<button class="uk-button" type="button">...</button>
</div>
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher uk-margin">...</ul>
Switcher и Nav
Чтобы применить переключатель switcher
к компоненту Nav, добавьте data-*
атрибут к <ul>
элементу навигации. Используйте компонент Grid для расположения навигации и содержимого в макете грида *сетки.
Пример
Разметка
<div class="uk-grid">
<div class="uk-width-medium-1-4">
<!-- Это навигация, содержащая переключающие элементы -->
<ul class="uk-nav uk-nav-side" data-uk-switcher="{connect:'#my-id'}">
<li><a href="">...</a></li>
</ul>
</div>
<div class="uk-width-medium-3-4">
<!-- Это контейнер содержащихся элементов -->
<ul id="my-id" class="uk-switcher">
<li>...</li>
</ul>
</div>
</div>
JavaScript options
Это пример того, как установить параметры через атрибут:
data-uk-switcher="{active:1}"
Option | Possible value | Default | Description |
---|---|---|---|
connect |
CSS selector | false | Related items container |
toggle |
CSS selector | '> *' | Toggle css selector, triggering content switching on click |
active |
integer | 0 | Active index on init |
animation |
mixed | false | Predefined animation name or any uk-animation class name. |
swiping |
boolean | true | Enable/disable content change on swipe |
Events
Вы можете привязать обратные вызовы *callbacks
к следующим событиям для пользовательской функциональности:
Name | Parameter | Description |
---|---|---|
show.uk.switcher |
event, active item | On switcher item show/change |
Пример
$('[data-uk-switcher]').on('show.uk.switcher', function(event, area){
console.log("Switcher switched to ", area);
});