vuedraggable拖拽,vue拖拽排序插件vuedraggable

  vuedraggable拖拽,vue拖拽排序插件vuedraggable

  这篇文章主要为大家详细介绍了使用vuedraggable实现从左向右拖拽功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了使用vuedraggable实现从左向右拖拽的具体代码,供大家参考,具体内容如下

  

1 功能描述

  使用vuedraggable实现从左边框中拖拽到右边的框中,左边的框不能随意拖拽改变位置,不能向左边框中拖拽组件。右边框中的组件可以拖动位置,但不能拖入到左边框里。

  注意事项如下:

  (1)可拖动的组中的名字属性必须一致;

  (2)左边框中的可拖动的必须含有以下属性,组中的拉:"克隆"属性表示可以生成新的组件;组中的放:假属性表示不能向里面拖拽组件;{sort: false}属性表示不能更改组件的位置。

  (3)左边框中的可拖动的中的clone=cloneItem 表示组件被拖拽到右边框中后,将生成的是新的组件,如果修改右边组件的数据不会影响左边组件的数据100 .克隆尼特姆实现的是对每个组件的深复制。如果要实现修改两边框中的任何组件,两边组件都会同步变化,则需要删除clone=cloneItem 属性。

  (4)右边框中的可拖动的中的开始属性是监听开始拖动组件,添加是监听添加组件,可以根据情况调用其中的数据。

  (5)从左边框拖入右边框中判断单个数据是否合法,可以使用移动属性,如果,左侧单个数据不合法返回假的,则无法添加到右侧框中。

  

2 截图

  

3 源代码

  模板

  div class=my_draggle

  div class=md_title 使用vuedraggable实现从左到右拖拽/div

  div class=md_con

  可拖动的

  class=mdc_left

  v-model=originDataArr

  v-bind={sort: false}

  v-bind:group={ name:person ,pull:clone ,put:false }

  v-bind:clone=cloneItem

  原始数据arr中的div v-for=(item,index)v-bind:key= index

  span{{item.name}}/spannbsp .不间断空格

  span{{item.sex}}/span

  /div

  /可拖动

  可拖动的

  class=mdc_right

  v-model=newDataArr

  v-bind:group={name:person}

  v-on:start=dragItem

  v-on:add=addItem

  新数据arr中的div v-for=(item,index v-bind:key= index

  spanning v-bind:src= item。icon //span nbsp .不间断空格

  span{{item.name}}/spannbsp .不间断空格

  span{{item.sex}}/span

  /div

  /可拖动

  /div

  /div

  /模板

  脚本

  从" vuedraggable "导入可拖动的

  导出默认值{

  名字:"我的小家伙",

  组件:{

  可拖动的

  },

  道具:{

  消息:字符串

  },

  数据:函数(){

  返回{

  originDataArr: new Array(),

  newDataArr:新数组()

  }

  },

  已安装:函数(){

  这个。initdata();

  },

  方法:{

  initData: function(){

  this.originDataArr=[

  {姓名:张三,年龄:15岁,性别: 男,icon:require( @/assets/logo。png )},

  {姓名:李四,年龄:15岁,性别: 男,icon:require( @/assets/logo。png )},

  {姓名:王五,年龄:15岁,性别: 男,icon:require( @/assets/logo。png )},

  {姓名:小花,年龄:15岁,性别: 女,icon:require( @/assets/logo。png )}

  ]

  },

  克隆项:函数(值){

  //深复制一个节点

  返回JSON.parse(JSON.stringify(val))

  },

  dragItem:函数(小部件){

  控制台。日志(widget);

  },

  addItem:函数(小部件){

  控制台。日志(widget);

  }

  }

  }

  /脚本

  !-添加"限定范围"属性以将半铸钢钢性铸铁(Cast Semi-Steel)仅限制到此组件-

  样式范围。我的_拖拉{

  位置:相对;

  }。md _标题{

  字体大小:24px

  高度:60px

  }。md_condiv{

  宽度:600像素

  高度:600像素

  显示:内嵌-块;

  边框:1px纯色# CCCCCC;

  边框半径:10px

  垂直对齐:顶部;

  }。mdc_leftdiv{

  高度:40px

  行高:40px

  边距-顶部:6px

  边框:1px纯色# CCCCCC;

  光标:移动;

  边距:10px 20px

  }。mdc_leftdiv:hover{

  盒影:1px 2px 4px # CCCCCC;

  }。mdc_rightdiv{

  高度:40px

  行高:40px

  边距-顶部:6px

  边框:1px纯色# CCCCCC;

  光标:移动;

  边距:10px 20px

  }。mdc_rightdiv:hover{

  盒影:1px 2px 4px # CCCCCC;

  }。mdc_rightdivspan{

  显示:内嵌-块;

  垂直对齐:顶部;

  }。mdc _ rightdivspanimg {

  高度:30px

  }

  /风格

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: