Vue.Draggable 实现组件拖拽

特性

  • 支持触摸设备
  • 支持拖拽和选择文本
  • 支持智能滚动
  • 支持不同列表之间的拖拽
  • 不以jQuery为基础
  • 和视图模型同步刷新
  • 和vue2的国度动画兼容
  • 支持撤销操作
  • 当需要完全控制时,可以抛出所有变化
  • 可以和现有的UI组件兼容

安装与引入

1 npm i -S vuedraggable
2 import vuedraggable from 'vuedraggable'
复制代码

注册组件

components:{draggable}
复制代码

使用方法

<template><div class="box_main"><div class="box_left"><div class="templateTask">请选择任务</div><vuedraggablev-model="showTask":options="{animation:300,group:'people', scroll:true,scrollSpeed:2000,scrollSensitivity:10}"style="height:800px; overflow:scroll;  overflow-x:auto; overflow :auto;"><div v-for="(item,key) in showTask" :key="key" :index="key"><component :is="item.component" ref="getComponentData"></component></div></vuedraggable></div><div class="box_right"><div class="templateTask">已有任务</div><vuedraggablev-model="rightTask":options="{animation:300,group:'people',scroll:true,scrollSpeed:2000,scrollSensitivity:10}"style="height:800px;  overflow:scroll;   overflow-x:auto; overflow :auto;"><div v-for="(item,key) in rightTask" :key="key" :index="key"><component :is="item.component" ref="getComponentData"></component></div></vuedraggable></div></div>
</template><script>
import vuedraggable from 'vuedraggable'
export default {name: 'App',data() {return {showTask: [],//左边显示的组件rightTask: [],//右边显示组件,editable: true,isDragging: false,delayedDragging: false}},components: {//调用组件draggable,},methods:{}}
</script><style>
.div3{display: flex;
}
#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;display: flex;
}
.div1{flex: 1;height: 500px;background-color: antiquewhite;
}
.div2{flex: 1;height: 500px;background-color: beige;
}
</style>
复制代码

注意:

  • 两边的盒子最好设高,不然一边没有高度就拖动不了

属性

element

String,默认div

  • 就是标签在渲染后展现出来的标签类型
  • 也是包含拖动列表和插槽的外部标签
  • 可以用来兼容UI组件

options

Object

  • group: string or array分组用的,同一组的不同list可以相互拖动
  • sort: boolean 定义是否可以拖拽
  • delay:number 定义鼠标选中列表单元可以开始拖动的延迟时间
  • touchStartThreshold:number (不清楚)
  • disabled: boolean 定义是否此sortable对象是否可用,为true时sortable对象不能拖放排序等功能
  • animation: umber 单位:ms 动画时间
  • handle: selector 格式为简单css选择器的字符串,使列表单元中符合选择器的元素成为拖动的手柄,只有按住拖动手柄才能使列表单元进行拖动
  • filter: selector 格式为简单css选择器的字符串,定义哪些列表单元不能进行拖放,可设置为多个选择器,中间用“,”分隔
  • preventOnFilter: 当拖动filter时是否触发event.preventDefault()默认触发
  • draggable: selector 格式为简单css选择器的字符串,定义哪些列表单元可以进行拖放
  • ghostClass: selector 格式为简单css选择器的字符串,当拖动列表单元时会生成一个副本作为影子单元来模拟被拖动单元排序的情况,此配置项就是来给这个影子单元添加一个class,我们可以通过这种方式来给影子元素进行编辑样式
  • chosenClass: selector 格式为简单css选择器的字符串,目标被选中时添加
  • dragClass:selector 格式为简单css选择器的字符串,目标拖动过程中添加
  • forceFallback: boolean 如果设置为true时,将不使用原生的html5的拖放,可以修改一些拖放中元素的样式等
  • fallbackClass: string 当forceFallback设置为true时,拖放过程中鼠标附着单元的样式
  • dataIdAttr: data-id
  • scroll:boolean当排序的容器是个可滚动的区域,拖放可以引起区域滚动
  • scrollFn:function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl) { … } 用于自定义滚动条的适配
  • scrollSensitivity: number 就是鼠标靠近边缘多远开始滚动默认30
  • scrollSpeed: number 滚动速度 !

函数配置

  • setData: 设置值时的回调函数
  • onChoose: 选择单元时的回调函数
  • onStart: 开始拖动时的回调函数
  • onEnd: 拖动结束时的回调函数
  • onAdd: 添加单元时的回调函数
  • onUpdate: 排序发生变化时的回调函数
  • onRemove: 单元被移动到另一个列表时的回调函数
  • onFilter: 尝试选择一个被filter过滤的单元的回调函数
  • onMove: 移动单元时的回调函数
  • onClone: clone时的回调函数

转载于:https://juejin.im/post/5ce25339f265da1b8b2b3098

Vue.Draggable 实现组件拖拽相关推荐

  1. 【VUE】draggable-实现组件拖拽实例

    使用draggable实现组件拖拽 实现步骤 1.导入draggable依赖 npm i -S vuedraggable 2.引入draggable import draggable from &qu ...

  2. vue3 组件拖拽小案例

    vue3 实现组件拖拽小案例 一.实现效果 将不同组件拖拽至展示区展示 拖拽前 拖拽后,取消后还原(没有动态演示真抱歉) 二.实现过程 页面基本样式 <template><div c ...

  3. Android仿探探卡片拖拽,Vue 仿探探拖拽卡片的效果

    原标题:Vue 仿探探拖拽卡片的效果 已更新Vue3版,请给前端大全发送关键字vue3仿探探获取Vue3版 类似 Tinder 和 探探 的卡片效果的组件,社区中已经非常多了.我这一版除了可以实现和他 ...

  4. 基于 Spring Boot + Vue 实现的可视化拖拽编辑的大屏项目

    大家好,今天给小伙伴们分享一个基于 SpringBoot + Vue 实现的可视化拖拽编辑的大屏项目: 简介 这个是一个开源的一个BI平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑 ...

  5. vue+sortable实现表格拖拽

    vue+sortable实现表格拖拽 前言: 支持 vue3.0 支持表格拖拽 支持自定义拖拽 sortable官网 一.下载 sortable npm install sortablejs --sa ...

  6. Vue+el-tree,元素拖拽时出现禁用图标, 请看解决办法

    项目需求:vue+el-tree实现节点拖拽到指定div播放视频: 问题:当节点拖拽时, 出现禁用图标: 一开始以为将禁用图标改变样式或隐藏就可以,一番尝试后, 发现这个图标可能是浏览器默认的, 经过 ...

  7. vue可视化拖拽组件模板_基于 Vue 丝滑般拖拽排序组件VueSlicksort

    今天给大家分享一个功能超强的自由拖拽排序组件VueSlicksort. vue-slicksort 一款功能强大的可拖拽的vue.js组件.拥有丝滑般拖拽动画效果,支持水平/垂直/网格拖拽排序.还可以 ...

  8. vue 组件拖拽和缩放,支持在容器为transform:scale和zoom情况下的正常显示

    自己造轮子好累, 起因是用别人的封装组件时发现在父容器缩放(transform:scale.zoom)情况下需要拖拽缩放的组件的鼠标位置有偏移,看文档看源码找不到自定义缩放比例的地方,痛苦. 实现效果 ...

  9. vuedraggable实现组件拖拽,页面生成器?

    使用H5的draggable="true"虽然可以实现拖拽,但如果是在vue中使用,我们需要去封装,虽然不难,但是有成熟的轮子为什么不用呢? 在vue中实现拖拽可以使用vuedra ...

最新文章

  1. 干货|对比理解不同概率估计和模型损失函数
  2. 小波变换学习~语音端点检测
  3. Java中equals、==和hashcode()
  4. Azure App Service 上的根证书
  5. JavaSE第九天20160815
  6. arcgis10之将多个shp文件合并成一个shp文件
  7. 【CAD技巧】120个常见CAD问题解决办法
  8. Intellij IDEA破解激活
  9. 羡慕的核心是焦虑_焦虑是自由的头晕
  10. erpc Linux 本地环境的搭建和使用
  11. 一文告诉你IT行业什么方向赚钱,需求多
  12. yolo实现交通信号灯视频流识别代码搬运及调试
  13. 《C++精英内参之程序员高效指南》-12-8影响效率的不良习惯之科学的休息方法
  14. 常见的百度云搜索引擎入口合集
  15. vue时间戳和时间的相互转换
  16. 解决zeal文档下载不上的办法
  17. 大小端高位低位字节的理解
  18. tomcat启动许多gc_tomcat gc问题总结
  19. 忘记AppleID的密码,快速更改密码的方法和phone苹果商店显示您的ID已被停用的解决办法
  20. 二十五个深度学习相关公开数据集

热门文章

  1. Linkedin 工程师如何优化他们的 Java 代码
  2. Oracle 10g RAC OCR 和 VotingDisk 的备份与恢复
  3. 【CUDA学习】GPU硬件结构
  4. http 403错误解决
  5. Richard Feynman, 挑战者号, 软件工程,自顶而下
  6. 订单×××的算法研究与实现
  7. “大型票务系统”和“实物电商系统”的数据库选型
  8. 知道这20个正则表达式,能让你少写1,000行代码
  9. USACO 1.4 Packing Rectangles
  10. 以比特币现金(BCH)为核心的慈善经济体系革新业态