sortablejs. 列表之间的拖动
时间: 2023-12-12 17:31:27 浏览: 114
要实现列表之间的拖动,可以使用 SortableJS 库。这个库可以让你轻松地实现拖放排序功能,支持多种框架和库,包括 React、Angular、Vue 等等。
使用 SortableJS 的基本步骤如下:
1. 引入 SortableJS 库和样式文件:
```html
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.13.0/Sortable.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.13.0/Sortable.min.js"></script>
```
2. 创建一个列表,并为其添加一个 ID:
```html
<ul id="my-list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
```
3. 初始化 SortableJS:
```javascript
var mylist = document.getElementById("my-list");
new Sortable(mylist);
```
这样就可以实现基本的列表拖放排序了。当然,还有很多其他的配置选项可以使用,比如限制拖放的方向、设置拖放时的样式等等。
相关问题
sortablejs. 列表之间
可以使用 SortableJS 库来实现列表之间的拖拽排序。该库支持多种框架和库,如 jQuery、React、Vue 等。
使用 SortableJS 的基本步骤如下:
1. 引入 SortableJS 库和样式文件。
2. 在 HTML 中创建需要排序的列表。
3. 使用 SortableJS 创建一个 Sortable 实例,并指定需要排序的列表。
4. 可以通过配置选项来自定义排序行为,如禁止某些元素拖拽、限制拖拽范围等。
5. 可以监听 Sortable 实例的事件,如拖拽开始、拖拽结束等。
下面是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SortableJS Demo</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.13.0/Sortable.min.css">
</head>
<body>
<ul id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.13.0/Sortable.min.js"></script>
<script>
var list = document.getElementById('list');
var sortable = new Sortable(list);
</script>
</body>
</html>
```
vue2中两个列表使用sortablejs相互拖拽
在 Vue.js 2 中,你可以使用 SortableJS 这个强大的 JavaScript 插件来实现在两个列表之间进行拖拽交互。以下是简单的步骤:
1. 首先,你需要安装 SortableJS 和它的依赖库,比如 VueSortable 或者直接在项目中通过 npm 安装:
```
npm install sortablejs vue-sortable vuedraggable
```
2. 引入所需的模块到你的 Vue 组件中:
```javascript
import Sortable from 'vue-sortable';
import draggable from 'vuedraggable';
```
3. 创建两个数据数组,假设分别为 `listA` 和 `listB`,并将它们绑定给 Sortable 或 draggable 的元素:
```html
<ul id="listA" v-model="listA" :sortable="optionsA">
<!-- ...每个项的 HTML模板... -->
</ul>
<ul id="listB" v-model="listB" :draggable="true">
<!-- ...每个项的 HTML模板... -->
</ul>
```
4. 初始化 Sortable 或 draggable 的配置,包括排序选项:
```javascript
data() {
return {
listA: [...], // 初始化的数据
listB: [...],
optionsA: { /* SortableJS 的配置 */ },
};
},
methods: {
handleDrop(event) { /* 接收拖放事件并更新数据 */
const draggedItem = event.dragged;
const droppedIndex = event.newIndex;
this.$set(this.listB, droppedIndex, draggedItem); // 将item移动到新位置
}
}
```
5. 对于 SortableJS,你需要提供类似这样的配置:
```javascript
methods: {
optionsA: {
group: '__group__', // 指定哪些元素可以互相拖动
animation: 150,
onEnd: (event) => {
this.handleDrop(event);
},
},
}
```
6. 当一个元素从 `listA` 被拖放到 `listB`,在 `handleDrop` 方法中处理数据的变化,确保同步。
阅读全文