Сортируемые элементы
Создайте сортируемые грид-сетки и списки, чтобы изменить порядок их элементов.
Перетащите элемент (*Drag and drop) в новое место в сортируемой грид-сетке, в то время как другие элементы подгоняются под размер. Это замечательно, например, если вы хотите отсортировать такие элементы, как галерея или пункты меню.
Использование
Чтобы применить компонент Sortable, добавьте класс .uk-sortable
в контейнер и создайте дочерние элементы для определения компонента. Чтобы включить необходимый JavaScript, просто добавьте атрибут data-uk-sortable
.
Пример
В этом примере использовалась сетка из компонента Grid, чтобы упорядочить сортируемые элементы.
- Элемент 1
- Элемент 2
- Элемент 3
- Элемент 4
- Элемент 5
- Элемент 6
- Элемент 7
- Элемент 8
- Элемент 9
- Элемент 10
Разметка
<ul class="uk-sortable" data-uk-sortable>
<li>...</li>
<li>...</li>
</ul>
Сортировка любого элемента
Сортируемый компонент не ограничен элементами <ul>
. Вы можете использовать любой элемент блока в качестве контейнера.
Разметка
<div class="uk-sortable" data-uk-sortable>
<div>...</div>
<div>...</div>
</div>
"Сортируемая рука" Handle
По умолчанию весь сортируемый элемент может использоваться для сортировки с помощью перетаскивания.
Чтобы создать сортируемую handle, которая будет использоваться вместо этого, добавьте параметр {handleClass:'uk-sortable-handle'}
в атрибут данных
и добавьте класс handle
к элементу, который вы хотите использовать в качестве handle.
Пример
-
Элемент 1
-
Элемент 2
-
Элемент 3
-
Элемент 4
-
Элемент 5
-
Элемент 6
-
Элемент 7
-
Элемент 8
-
Элемент 9
-
Элемент 10
Примечание В примере использован класс .uk-icon-bars
из компонента Icon для стилизации handle
.
Разметка
<ul class="uk-sortable" data-uk-sortable="{handleClass:'uk-sortable-handle'}">
<li>
<div class="uk-sortable-handle"></div>
...
</li>
</ul>
Sortable - Несколько списков
Чтобы иметь возможность сортировать элементы из одного списка в другой, вы можете сгруппировать их, добавив атрибут data-uk-sortable="{group:'GROUP-NAME'}"
в каждый список.
Пример
Первый список
Второй список
Разметка
<ul class="uk-sortable" data-uk-sortable="{group:'my-group'}">...</ul>
<ul class="uk-sortable" data-uk-sortable="{group:'my-group'}">...</ul>
JavaScript options
Это пример того, как установить параметры через атрибут данных:
data-uk-sortable="{animation:0, dragCustomClass:'dragging'}"
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
group |
string | false | List group |
animation |
integer | 150 | Animation speed in ms |
threshold |
integer | 10 | Mouse movement threshold in pixel until trigger element dragging |
handleClass |
string | '' | Custom class to define elements which can trigger sorting |
dragCustomClass |
string | '' | Custom class added to the dragged element |
Запуск элемента вручную
var sortable = UIkit.sortable(element, { /* options */ });
События
Имя | Параметр | Описание |
---|---|---|
start.uk.sortable |
event, sortable object, dragged element, ghost element | On sortable drag start |
move.uk.sortable |
event, sortable object | On sortable move item |
stop.uk.sortable |
event, sortable object, dragged element | On sortable stop dragging |
change.uk.sortable |
event, sortable object, dragged element, action | On sortable change item |