位置: IT常识 - 正文

vuedraggable的使用(vuedraggable官方文档)

编辑:rootadmin
vuedraggable的使用

推荐整理分享vuedraggable的使用(vuedraggable官方文档),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue drag,vuedraggable教程,vuedraggable参数配置,vuedraggable官方文档,vuedraggable原理,vuedraggable教程,vuedraggable原理,vue dragable,内容如对您有帮助,希望把文章链接给更多的朋友!

官网地址: https://www.npmjs.com/package/vuedraggable https://github.com/SortableJS/Vue.Draggable

效果:https://sortablejs.github.io/Vue.Draggable/#/custom-clone Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。

一.安装

npm i -S vuedraggable

或者引入:

二.使用1.场景:单个列表内部简单的拖拽(不克隆)<template> <div class="twoPage"> <draggable :list="list" :disabled="!enabled" class="list-group" ghost-class="ghost" :move="checkMove" @start="dragging = true" @end="dragging = false"> <div class="list-group-item" v-for="element in list" :key="element.name"> {{ element.name }} </div> </draggable> </div></template><script>import draggable from "vuedraggable";export default { data() { return { enabled: true, list: [ { name: "1 - John", id: 0 }, { name: "2 - Joao", id: 1 }, { name: "3 - Jean", id: 2 } ], dragging: false }; }, components:{ draggable }, mounted() { }, methods: { checkMove: function(e) { window.console.log("Future index: " + e.draggedContext.futureIndex); } }};</script><style lang="less">.ghost { opacity: 0.5; background: #c8ebfb;}.list-group{ display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; width: 300px; .list-group-item{ cursor: move; position: relative; display: block; padding: 0.75rem 1.25rem; margin-bottom: -1px; background-color: #fff; border: 1px solid rgba(0,0,0,.125); }}</style>vuedraggable的使用(vuedraggable官方文档)

效果如下:

2.场景:两个列表间的拖拽(不克隆)

左边往右边拖拽,拖过来一个,左边就少一个,右边就会多一个

<template> <div class="twoPage"> <div class="el-row"> <div class="el-col" :span="12"> <h3>Draggable 1</h3> <draggable class="list-group" :list="list1" group="people" @change="log"> <div class="list-group-item" v-for="(element, index) in list1" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> <div class="el-col" :span="12"> <h3>Draggable 2</h3> <draggable class="list-group" :list="list2" group="people" @change="log"> <div class="list-group-item" v-for="(element, index) in list2" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> </div> </div></template><script>import draggable from "vuedraggable";export default { data() { return { list1: [ { name: "list1 - 1:John", id: 1 }, { name: "list1 - 2:Joao", id: 2 }, { name: "list1 - 3:Jean", id: 3 }, { name: "list1 - 4:Gerard", id: 4 } ], list2: [ { name: "list2 - 1:Juan", id: 5 }, { name: "list2 - 2:Edgard", id: 6 }, { name: "list2 - 3:Johnson", id: 7 } ] }; }, components:{ draggable }, mounted() { }, methods: { log: function(evt) { window.console.log(evt); } }};</script><style lang="less">.ghost { opacity: 0.5; background: #c8ebfb;}.list-group{ display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; width: 300px; .list-group-item{ cursor: move; position: relative; display: block; padding: 0.75rem 1.25rem; margin-bottom: -1px; background-color: #fff; border: 1px solid rgba(0,0,0,.125); }}</style>

options配置项, sort:false 表示拖动时禁止其进行排序操作 group: {name: ‘field’, pull: ‘clone’, put: false} 表示进行克隆拖动操作,并且该name和拖动的目标位置group名称一致,如右侧draggable标签的group同样为field draggable=“.item” 将可拖动属性下放到每一个按钮下

3.场景:两个列表间的拖拽(克隆)

效果:左边往右边拖拽,拖过来一个,左边不会少,但右边就会多一个,相当于复制。

代码场景2的区别在于: :group="{ name: 'people', pull: 'clone', put: false }":表示可拖拽克隆出去,但不接收外面拖拽过来的 group="people":简单的内部拖拽

<template> <div class="twoPage"> <div class="el-row"> <div class="el-col" :span="12"> <h3>Draggable 1</h3> <draggable class="list-group" :list="list1" :group="{ name: 'people', pull: 'clone', put: false }" @change="log"> <div class="list-group-item" v-for="(element, index) in list1" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> <div class="el-col" :span="12"> <h3>Draggable 2</h3> <draggable class="list-group" :list="list2" group="people" @change="log"> <div class="list-group-item" v-for="(element, index) in list2" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> </div> </div></template><script>import draggable from "vuedraggable";export default { data() { return { list1: [ { name: "list1 - 1:John", id: 1 }, { name: "list1 - 2:Joao", id: 2 }, { name: "list1 - 3:Jean", id: 3 }, { name: "list1 - 4:Gerard", id: 4 } ], list2: [ { name: "list2 - 1:Juan", id: 5 }, { name: "list2 - 2:Edgard", id: 6 }, { name: "list2 - 3:Johnson", id: 7 } ] }; }, components:{ draggable }, mounted() { }, methods: { log: function(evt) { window.console.log(evt); } }};</script><style lang="less">.ghost { opacity: 0.5; background: #c8ebfb;}.list-group{ display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; width: 300px; .list-group-item{ cursor: move; position: relative; display: block; padding: 0.75rem 1.25rem; margin-bottom: -1px; background-color: #fff; border: 1px solid rgba(0,0,0,.125); }}</style>

效果和场景2一样

4.场景:两个列表间的拖拽-自定义克隆(克隆)

:clone="cloneDog" 这个方法自定义克隆

<template> <div class="twoPage"> <div class="el-row"> <div class="el-col" :span="12"> <h3>Draggable 1</h3> <draggable class="list-group" :list="list1" :group="{ name: 'people', pull: 'clone', put: true }" @change="log" :clone="cloneDog"> <div class="list-group-item" v-for="(element, index) in list1" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> <div class="el-col" :span="12"> <h3>Draggable 2</h3> <draggable class="list-group" :list="list2" :group="{ name: 'people', pull: 'clone', put: true }" @change="log"> <div class="list-group-item" v-for="(element, index) in list2" :key="element.name" > {{ element.name }} {{ index }} </div> </draggable> </div> </div> </div></template><script>import draggable from "vuedraggable";export default { data() { return { list1: [ { name: "list1 - 1:John", id: 1 }, { name: "list1 - 2:Joao", id: 2 }, { name: "list1 - 3:Jean", id: 3 }, { name: "list1 - 4:Gerard", id: 4 } ], list2: [ { name: "list2 - 1:Juan", id: 5 }, { name: "list2 - 2:Edgard", id: 6 }, { name: "list2 - 3:Johnson", id: 7 } ] }; }, components:{ draggable }, mounted() { }, methods: { log: function(evt) { window.console.log(evt); }, cloneDog({ id }) { return { id: 8, name: 'cat' }; } }};</script><style lang="less">.ghost { opacity: 0.5; background: #c8ebfb;}.list-group{ display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; width: 300px; .list-group-item{ cursor: move; position: relative; display: block; padding: 0.75rem 1.25rem; margin-bottom: -1px; background-color: #fff; border: 1px solid rgba(0,0,0,.125); }}</style>
本文链接地址:https://www.jiuchutong.com/zhishi/294488.html 转载请保留说明!

上一篇:合宙AIR32F103CBT6刷回CMSIS-DAP固件和DAP升级固件以及刷ST-LINK V2-1固件方法(合宙air32f103 stlink)

下一篇:CVPR2023(cvpr2023最佳论文)

  • 增值税纳税期限1日是什么意思
  • 增值税是价内税,消费者是税款的最终负担者( ) A对 B错
  • 经营结余年末结转
  • 如何降低应用耗电
  • 被收购的收入计什么科目
  • 上个月开的增值税发票这个月可以作废吗
  • 一般纳税人取得小规模纳税人的专票可以抵扣吗
  • 扩大税收来源什么意思
  • 公司与政府协议
  • 附加税减半征收政策是哪个文件
  • 重庆增值税税率调整
  • 修叉车这个工作怎么样
  • 企业收到政府扶贫资金补助及运用补助金怎么做账
  • cpu天梯图2022最新排行榜
  • arp防火墙是什么意思
  • 捐赠固定资产入账价值
  • 初级会计中应收账款贴现
  • 其他应收款核算内容
  • ezulumain.exe是病毒进程吗 ezulumain进程安全吗
  • 收到退款的会计分录
  • 企业投资者撤回投资款
  • 购买材料时采购会计分录
  • 发票开错的常见情况和处理办法?
  • 阿查法拉亚盆地牡蛎
  • 以权益结算的股票
  • 认缴制下实收资本需要验资吗
  • vue运行报错怎么解决
  • 想学web前端
  • uniapp scroll-view基础用法
  • passwd -s命令
  • 固定资产盘盈税务处理政策
  • 开发票纸巾属于什么编码
  • php跳转到指定网页代码
  • 织梦标签理解
  • vue前端页面设计
  • 健身房注册公司能注册医疗吗?
  • 记账凭证填错了怎么办还没有登记账簿
  • sql20054n
  • 员工工资应要计入什么
  • mysql 查询平均值
  • 代开发票相关问答有什么?
  • 长期应付款科目的涉税风险
  • 走账犯罪吗
  • 采购原材料怎么做分录
  • 置换房产怎么交税
  • 所得税汇算清缴报告在哪查
  • 小规模转一般纳税人条件最新政策
  • 电信收据可以报销吗
  • 咨询服务费如何合理避税
  • 小规模纳税人能开专票吗2023
  • 小微企业和小规模纳税人的区别
  • 银行记账本怎么填写
  • 安装mysql失败原因
  • MySQL利用大数据技术进行回归模型的构建流程
  • win7系统突然退化
  • 设置u盘为只读
  • XP系统怎么安装打印机
  • 国产系统麒麟和统信
  • 在苹果电脑mac上怎么下载
  • unix和linux是使用较为广泛的多用户交互
  • win7系统自带刻录启用
  • linux shell alias
  • Extjs grid panel自带滚动条失效的解决方法
  • cocos2dx入门
  • bat运行完后不退出
  • jquery解析json数据
  • nodejs获取客户端设备信息
  • 微信公众号摇号软件
  • 详解中国女足出线形势
  • mongodb python
  • js 队列
  • 曲剧全场戏双玉蝉
  • 如何理解python语言
  • 上海市税务局招聘
  • 河南商丘联通宽带最低多少钱
  • 海口市地方税务局是什么级别
  • 员工的生育津贴计入工资总额吗
  • 苏州吴江区事业单位2023成绩公布
  • 税务负责人
  • 单位名称变更后发票还能用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设