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

  • 丢失增值税专用发票最新规定
  • 减免税填到营业外收入哪一项
  • 河北金税盘
  • 金税四期什么时候全国运行
  • 投资收益包括哪些项目
  • 收入入账会计分录
  • 汇算清缴调表不调账调的是哪张表
  • 购入的固定资产
  • 台湾企业不能在大陆或香港上市吗
  • 国际贸易公司注册需要什么条件海南
  • 打样费单位是什么
  • 其他货币资金包括
  • 资产减值准备怎么转回
  • 是否退还投标文件
  • 公司买房需要交房产税吗
  • 发票跨月还能重开吗
  • 建筑企业之前的工作内容
  • 发票收款人和开票人
  • 个人能在税务局交社保吗
  • 汽修厂纳税多少
  • 预提费用多少
  • 代订住宿费属于那个经营范围
  • 利息调整摊销额等于什么
  • 收到退回的土地使用税分录怎么做
  • 利润总额和净利润的区别
  • 建筑公司分包
  • linux系统中用户账户有哪些分类
  • Javascript Object和Map之间的转换
  • 网络延迟高不稳定怎么办
  • 工会费会计分录
  • 比较坏账准备与什么有关
  • php设置中文
  • php23种设计模式
  • 小规模纳税人的条件
  • chatGPT之Python API启用上下文管理
  • python天气数据的爬取与分析
  • 长期股权投资的明细科目有哪些
  • 咨询公司需要交税吗
  • sql row_number()over()
  • 应付账款的四大基本要素
  • 分支机构注销后往来账如何处理?
  • 如何评价福建省
  • 代开增值税额与实际缴款额差一分钱如何入账?
  • 违约金 专票
  • 非营利性养老院收费标准一般是多少
  • 商场进行打折促销活动,消费金额(p)
  • 购入固定资产会计处理
  • 固定资产为
  • 企业签发转账支票
  • 材料的运费计入哪个科目
  • 待摊费用和长期待摊费用税前扣除
  • 机票报销需要什么单据
  • 工业企业增值税负率一般控制在多少
  • mysql 非聚集索引
  • sql中函数 判断是否是null
  • win10右键菜单自定义
  • windows2000怎么安装
  • win7系统关机很慢什么原因
  • ddriver进程
  • 查找注册表命令
  • RAVMOND.exe - RAVMOND是什么进程.有什么作用
  • msoia.exe是什么程序
  • 桌面上有desktop.ini文件
  • linux的文件结构
  • win7任务管理器怎么调回原来样子
  • linux网卡添加vlan
  • 详解16型人格
  • js array api
  • shell脚本编写步骤
  • 基于JAVASCRIPT实现的可视化工具是
  • unity3d中用四元数 Quaternion来对一个坐标点进行旋转的初步体会
  • javascript怎么用
  • bootstrap怎么用
  • python的web框架
  • 公司向境外汇款限额
  • 绿化养护的增值税是多少
  • 如何在网上开税票发票
  • 北京市国家税务局官网手机app
  • 成都那些地方属于正东方向
  • 河南国税发票查询真伪官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设