draggable实现拖拽、禁止拖拽、拖拽后元素重新排序到指定位置

编程入门 行业动态 更新时间:2024-10-21 13:44:22

draggable实现<a href=https://www.elefans.com/category/jswz/34/1765858.html style=拖拽、禁止拖拽、拖拽后元素重新排序到指定位置"/>

draggable实现拖拽、禁止拖拽、拖拽后元素重新排序到指定位置

前言

draggable的github地址

// 安装
npm install vuedraggable
// 引入
import draggable from 'vuedraggable'

实现拖拽

// 拖拽组件
<draggableclass="components-draggable":list="item.list":group="{ name: 'componentsGroup'}"draggable="ponents-list":sort="false":move="onMove"@end="onEnd"
><li class="components-list" v-for="(item, index) in list" :key="index"><div class="components-body">{{item.label}}</div></li>
</draggable>
// 数据
list: [{label: '组件1',value: 0},{label: '组件2',value: 1}
],
// 拖拽区域
<draggable :list="drawList" :animation="300" @end="onDrawEnd" group="componentsGroup"<li class="components-list" v-for="(item, index) in drawList" :key="index"><div class="components-body">{{item.label}}</div></li>
</draggable>
// 数据
drawList: [],

禁止拖拽

// 拖拽时,校验是否已存在,禁止拖拽
onMove(e) {// 判断-是否已存在let arr = this.drawList.filter(item => {return item.value === 0})// 符合条件返回false,否则返回trueif(e.draggedContext.element.value === 0 && arr.length){return false}return true
}

拖拽后元素重新排序到指定位置

// 限制:【组件1】始终排列在第一位
onEnd(){for (var i = 0; i < this.drawList.length; i++) {// 排序-组件1排第一位if(this.drawList[i].value === 0 && i !== 0){this.drawList[0] = this.drawList.splice(i, 1, this.drawList[0])[0];}}
}

关联文章

Vue.Draggable使用文档总结
js 实现数组元素交换位置

更多推荐

draggable实现拖拽、禁止拖拽、拖拽后元素重新排序到指定位置

本文发布于:2023-12-07 01:18:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1669629.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:拖拽   元素   位置   draggable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!