位置: 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最佳论文)

  • cad是什么(cad是什么软件)

    cad是什么(cad是什么软件)

  • 荣耀x10和荣耀30s对比(荣耀x10和荣耀30s和华为nova7se哪个好)

    荣耀x10和荣耀30s对比(荣耀x10和荣耀30s和华为nova7se哪个好)

  • 苹果11微信如何变成黑色呢(苹果11微信如何开美颜)

    苹果11微信如何变成黑色呢(苹果11微信如何开美颜)

  • 快手极速版绑定不了微信怎么办(快手极速版绑定微信安全吗?)

    快手极速版绑定不了微信怎么办(快手极速版绑定微信安全吗?)

  • 华为mate30不能用谷歌服务吗(华为mate30不能用谷歌怎么办)

    华为mate30不能用谷歌服务吗(华为mate30不能用谷歌怎么办)

  • windows键在键盘哪里(windows在键盘上是哪个按键)

    windows键在键盘哪里(windows在键盘上是哪个按键)

  • 手机进水了,声音变小了怎么办(手机进水了,声音变小了)

    手机进水了,声音变小了怎么办(手机进水了,声音变小了)

  • 怎样删除耗电记录(怎样删除耗电记录的软件)

    怎样删除耗电记录(怎样删除耗电记录的软件)

  • oppoa59手机自带录屏在哪(oppoa55手机自带的软件有哪些?)

    oppoa59手机自带录屏在哪(oppoa55手机自带的软件有哪些?)

  • 掌上电力登录失败是怎么回事

    掌上电力登录失败是怎么回事

  • iphonex总是自动调音量(iphonex总是自动开机)

    iphonex总是自动调音量(iphonex总是自动开机)

  • 微博为什么不能访问相机(微博为什么不能用账号密码登录)

    微博为什么不能访问相机(微博为什么不能用账号密码登录)

  • ipad绑定微信支付系统繁忙(ipad绑定微信支付)

    ipad绑定微信支付系统繁忙(ipad绑定微信支付)

  • c盘满了电脑会卡吗(C盘满了电脑会打不开吗)

    c盘满了电脑会卡吗(C盘满了电脑会打不开吗)

  • 计算工具有哪些(计算工具有哪些四年级三种)

    计算工具有哪些(计算工具有哪些四年级三种)

  • windows的剪贴板是用于临时存放信息的什么(windows的剪贴板是什么中的一块区域)

    windows的剪贴板是用于临时存放信息的什么(windows的剪贴板是什么中的一块区域)

  • 怎样取消美团极速付款(怎样取消美团极速支付功能)

    怎样取消美团极速付款(怎样取消美团极速支付功能)

  • 华为nova5pro怎么设置来电闪光灯(华为nova5pro怎么恢复出厂设置)

    华为nova5pro怎么设置来电闪光灯(华为nova5pro怎么恢复出厂设置)

  • vivo手机sim卡管理在哪里(vivi手机sim卡装哪里)

    vivo手机sim卡管理在哪里(vivi手机sim卡装哪里)

  • iphonexr有nfc功能么(iphonexr支持nfc)

    iphonexr有nfc功能么(iphonexr支持nfc)

  • 运动耳机怎么连接蓝牙(运动耳机怎么连接安卓手机)

    运动耳机怎么连接蓝牙(运动耳机怎么连接安卓手机)

  • 两个手机怎么互相定位(两个手机怎么互传所有东西)

    两个手机怎么互相定位(两个手机怎么互传所有东西)

  • word图标变成白底怎么办(word图标变成白色)

    word图标变成白底怎么办(word图标变成白色)

  • 抖音视频怎么解除私密(抖音视频怎么解除限流)

    抖音视频怎么解除私密(抖音视频怎么解除限流)

  • kb4499164安装失败怎么办

    kb4499164安装失败怎么办

  • 新公司什么时候开始建账
  • 申报纳税的意思
  • 报销为什么不能多家赔付
  • 工商年报纳税总额怎么算
  • 用现金支付需要附哪些单据
  • 不动产官网查询
  • 借贷必相等为什么是错的
  • 社保次月缴纳上月算不算中断
  • 小规模纳税人未开票收入填在哪里
  • 企业汇算清缴时允许税前扣除的工资是什么
  • 股息交个人所得税怎么交
  • 非公益捐赠税率
  • 典当业销售的死当物品是否交增值税
  • 以前年度损益调整科目怎么用
  • 房产公司增值税和土地增值税
  • 支付股东借款利息怎么交税
  • 扣除工资作为违约金
  • 利润表的企业所得税怎么查询
  • 企业所得税期末贷方余额怎么办
  • 土地租赁费含有多少税率
  • 营业执照印花税税率
  • 为什么增值税发票综合服务平台进不去
  • 轮胎计入什么会计科目
  • 个体虚开普通发票罪立案标准
  • 非公司员工缴纳社保有什么影响
  • 机动车销售发票如何认证抵扣?
  • 普通增值税发票左上角的二维码可以扫出来吗?
  • 已认证的发票退货怎么处理
  • php curl模块
  • 现在我们来看看windows中的新增内容
  • 提取的坏账准备怎么算
  • win10版本2004和20h2
  • win7系统禁用u盘
  • 系统win7旗舰版
  • 罚款在企业所得税前可以扣除吗
  • 野生动植物种源包括
  • 拱门国家公园景点
  • idea安装vue.js
  • 扣缴单位无有效的税费种认定信息
  • 保洁劳务派遣合同
  • 报销差旅费退回余款填什么凭证
  • 来料加工 增值税
  • 税务局手续费返还政策
  • php实现图片上传
  • 关于印花税免税的规定
  • 收到专票怎么入账
  • 地税代开的发票怎么计提税款?
  • dedecms标签怎么用
  • 一次性伤残补助金怎么查询进度
  • 建筑工程和建筑装饰工程的区别
  • 用友t6反记账步骤
  • 劳务公司核定征收怎么交税的
  • 分销佣金税务账务怎么做
  • 抵账房买卖流程
  • 小规模企业应交税费二级科目
  • 递延收入怎么做账
  • 资产评估增值的税务处理
  • 破产重整期间转让股权
  • 投入产出比的计算依据
  • sql语句中单引号怎么打
  • macbook像素能不能提高
  • centos占用内存高
  • freebsd windows
  • 进程是什么 进程类型
  • 桌面开始菜单跑到右边去了怎么办
  • windows7文件夹选项在哪里
  • myeclipse创建
  • 删除rpm安装包
  • javascript教程完整版
  • linux自动重启程序脚本
  • jQuery ajaxForm()的应用
  • linux中scp命令和scp命令用法大全
  • 基于python的聊天软件
  • python中模块的作用
  • python中循环
  • python读取大txt文件
  • 异地预缴的企业所得税带不出
  • 广州市国家税务局稽查局举报中心
  • 国外寄回来的奶粉被海关查到剪开,快递公司怎么处理
  • 闵行区注册公司,闵行区税务筹划,哪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设