1 const sortable = new Sortable(el, {
2 // group: 'name' 用来设置不同列表之间可以拖拉
3 group: {
4 name: '...',
5 pull: [true, false, 'clone', array],
6 put: [true, false, array]
7 },
8 sort: true, // 是否允许内部排序列表
9 delay: 0, // 定义何时开始排序的时间(以毫秒为单位)
10 delayOnTouchOnly: false, // 只有当用户使用触摸时才会延迟
11 touchStartThreshold: 0, //px, 在取消延迟拖拽事件之前,这个点应该移动多少像素
12 disabled: false, 如果设置为true,将禁用sortable,
13 store: null,
14 animation: 150, // ms(毫秒),移动时的动画速度,
15 easing: "cubic-bezier(1, 0, 0, 1)", // 移动的曲线
16 handle: ".my-handle", // 在列表项中拖动手柄选择器,只有元素有这个类才能拖动元素
17 filter: ".ignore-elements", // 不导致拖拽的选择器(字符串或函数)
18 preventOnFilter: true, // ' filter '触发时调用' event.preventDefault() '
19 draggable: ".item", // 指定元素中的哪些项应该是可拖动的
20 dataIdAttr: 'data-id', // ' toArray() '方法使用的HTML属性(搞不懂)
21 ghostClass: "sortable-ghost", // 拖放占位符的类名,拖动元素时添加类名
22 chosenClass: "sortable-chosen", // 所选项的类名
23 dragClass: "sortable-drag", // 拖动项的类名
24 swapThreshold: 1, // 交换区阈值(不懂)
25 invertSwap: false, // 如果设置为true,将始终使用反向交换区
26 invertedSwapThreshold: 1, // 反向交换区的阈值(默认设置为swapThreshold值)
27 direction: 'horizontal', // 可排序方向(如果没有给出,将自动检测到)
28 forceFallback: false, // 忽略HTML5的DnD行为并强制执行回退
29 fallbackClass: "sortable-fallback", // 使用forceFallback时克隆DOM元素的类名
30 fallbackOnBody: false, // 将克隆的DOM元素添加到文档的主体中
31 fallbackTolerance: 0, // 以像素为单位指定鼠标在被认为是拖动之前应该移动多远。(不懂)
32 dragoverBubble: false,
33 removeCloneOnHide: true, // 当克隆元素不显示时删除它,而不是仅仅隐藏它
34 emptyInsertThreshold: 5, //px, 距离鼠标必须从空的可排序元素插入拖动到它
35
36 setData: function (/** DataTransfer */dataTransfer, /** HTMLElement*/dragEl) {
37 dataTransfer.setData('Text', dragEl.textContent); // `dataTransfer` object of HTML5 DragEvent
38 },
39 })