# 可排序/Sortable
創建可排序的網格和列表重新來排列元素的順序。
拖拽元素到另一個可排序的網格中的某處,該網格中其它條目會自動適應排列順序。這將會在諸如排列畫廊條目或者菜單條目時顯得尤為有用。
* * *
## 用法
要使用這個組件,需要在容器中添加 `.uk-sortable` 類,然后創建子元素來定義這個組件。為了使必要的JavaScript生效,還需要添加 `data-uk-sortable` 屬性。注意 使用此組件需要額外添加 `sortable.css` 文件,在`css/components`文件夾中。此組件需要額外添加 `sortable.js` 文件,在`js/components`文件夾中。
### Example
在這里的例子中,我們使用到了 [網格組件](grid.html)來放置可排序的條目。

### Markup
```
<ul class="uk-sortable" data-uk-sortable>
<li>...</li>
<li>...</li>
</ul>
```
* * *
### 任意元素的排序
可排序組件并不限制只能用于 `<ul>` 元素。你可以使用任意塊元素作為容器。
#### Markup
```
<div class="uk-sortable" data-uk-sortable>
<div>...</div>
<div>...</div>
</div>
```
* * *
## 可排序手柄
默認地,整個可排序元素都可以拖拽進行排序。為了創建一個操作手柄,只需為希望作為手柄的元素添加 `{handleClass:'uk-sortable-handle'}` 選項到 data 屬性,并添加手柄的class 類名。
### Example

NOTE 在這個例子中,使用了 [圖標組件](icon.html) 中的 `.uk-icon-bars` 類名來設定手柄的樣式。
### Markup
```
<ul class="uk-sortable" data-uk-sortable="{handleClass:'uk-sortable-handle'}">
<li><div class="uk-sortable-handle"></div>...</li>
</ul>
```
* * *
## 多個列表之間的排序
為了是跨列表的拖拽排序成為可能,你需要為每個列表添加 `data-uk-sortable="{group:'GROUP-NAME'}"` 屬性,將它們歸為一組。
### Example

### Markup
```
<ul class="uk-sortable" data-uk-sortable="{group:'my-group'}">...</ul>
<ul class="uk-sortable" data-uk-sortable="{group:'my-group'}">...</ul>
```
* * *
## JavaScript 選項
這是一個關于如何通過data屬性設置選項的例子:
```
data-uk-sortable="{animation:0, dragCustomClass:'dragging'}"
```
| 選項 | 可用值 | 默認值 | 描述 |
| --- | --- | --- | --- |
| `group` | string | false | 列表的組 |
| `animation` | integer | 150 | 毫秒計時的動畫 |
| `threshold` | integer | 10 | 觸發元素拖拽的鼠標移動像素距離的閾值 |
| `handleClass` | string | '' | 自定義類名,用于定義哪些元素可以觸發排序 |
| `dragCustomClass` | string | '' | 添加到被拖拽元素中的自定義類 |
### 手動地初始化元素
```
var sortable = UIkit.sortable(element, { /* options */ });
```
### Events
| Name | Parameter | Description |
| --- | --- | --- |
| `start.uk.sortable` | event, sortable object, dragged element | 可排序拖拽開始時觸發 |
| `move.uk.sortable` | event, sortable object | 移動可排序條目時觸發 |
| `stop.uk.sortable` | event, sortable object, dragged element | 拖拽終止時觸發 |
| `change.uk.sortable` | event, sortable object, dragged element, action | 改變可排序條目時觸發 |
- UIkit 中文文檔
- 開始使用
- 初學者
- 開始使用
- 如何自定義
- 布局示例
- 開發者
- 項目結構
- Less & Sass 文件
- 創建主題
- 創建樣式
- Customizer.json
- JavaScript
- 自定義前綴
- 核心組件
- 默認
- 基礎
- 打印
- 布局類組件
- 網格
- 面板/Panel
- 塊/Block
- 文章
- 評論/Comment
- 效果/Utility
- Flex 布局
- 覆蓋/Cover
- 導航類組件
- 導航菜單
- 導航欄
- 二級導航
- 面包屑/Breadcrumb
- 分頁
- 選項卡
- 縮略圖導航/Thumbnav
- 頁面元素
- 列表
- 描述列表
- 表格
- 表單
- 常用組件
- 按鈕
- 圖標
- 關閉/Close
- 徽章/Badge
- 提示框
- 縮略圖/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 動畫
- 對比度/Contrast
- JAVASCRIPT組件
- 下拉菜單
- 模態對話框
- 抽屜/Off-canvas
- 切換器/Switcher
- 撥動/toggle
- 滾動監聽/Scrollspy
- 平滑滾動
- 附加組件
- 布局類組件
- 動態網格
- 視差網格
- 導航類組件
- 圓點導航
- 滑動導航/Slidenav
- 動態分頁
- 常用組件
- 高級表單
- 文件表單/Form file
- 密碼表單
- 選擇表單
- 占位符
- 進度條/Progress
- JAVASCRIPT組件
- 燈箱/Lightbox
- 自動完成/Autocomplete
- 日期選擇器/Datepicker
- HTML 編輯器
- 滾動條/Slider
- 滑塊集/Slideset
- 幻燈片/Slideshow
- 視差/Parallax
- 手風琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附著/Sticky
- 時間選擇器
- 工具提示/Tooltip
- 上傳