vuedraggable+element ui实现页面控件拖拽排序效果


Posted in Javascript onJuly 29, 2020

项目要实现一些控件的拖拽排序。从而找到了这款vuedraggable控件,供大家参考,具体内容如下

vuedraggable+element ui实现页面控件拖拽排序效果

如上图要实现这些控件的拖拽排序
这是拖拽后

vuedraggable+element ui实现页面控件拖拽排序效果

由于公司网络的原因,项目没有使用npm,都是使用的引入的js

<script type="text/javascript" src="lib/sortable/Sortable.min.js"></script>
<script type="text/javascript" src="lib/vuedraggable/vuedraggable.min.js"></script>

布局代码

<el-form :inline="true">
     <draggable v-model="filters" dragable="true" :move="getdata" @update="datadragEnd">
      <transition-group>
       <el-col :span="8" v-for="filter in filters" :key="filter.filterKey" style="margin-top: 5px">
        <el-form-item :label="filter.name" >
         <el-input v-model="filter.displayName" placeholder="请输入设置属性" @focus="openFilterDialog(filter)"></el-input>
        </el-form-item>
       </el-col>
      </transition-group>
     </draggable>
     <fitlerdialog v-bind:visable=dialogObjectVisible v-bind:avtivefilter=avtivefilter v-on:on-filter-data-change="onFilterDataChange" v-on:filterdialogcancle="handleDialogObjectcancle" v-on:filterdialogclose="handleDialogObjectClose"></fitlerdialog>
</el-form>

标签draggable放在你要拖拽的组件的最外层。

相关的处理代码

getdata(evt) {
 console.log(evt.draggedContext.filterKey)
 //这里evt.draggedContext后续的内容根据具体的定义变量而定
},
datadragEnd(evt) {
 console.log('拖动前的索引 :' + evt.oldIndex)
 console.log('拖动后的索引 :' + evt.newIndex);

 let filters = this.filters;
 for(let a=0;a<filters.length;a++){
  filters[a].index = a;
 }
 vm.report.filter = filters;

}

这里是因为我们需要将每个的顺序记录下来所以有业务代码。
每次移动后,可以通过v-model获取所有的控件,他们的顺序是当前排好的顺序,再进行index顺序记录。

evt为object,他的内容较多。

vuedraggable+element ui实现页面控件拖拽排序效果

draggedContext: 被拖拽元素的上下文

index:拖拽元素的指针
element: 拖拽数据本身
futureIndex: 拖动后的index

element如图:

vuedraggable+element ui实现页面控件拖拽排序效果

这是filters定义的数据本身也就是v-model内容。

relatedContext: 拖入区域的上下文

index: 目标元素的index
element:目标数据本身
list: 拖入的列表
component:目标组件

dragged:被拖拽元素的指向

大概就这些,功能较简单,但满足了要求就行。

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

Javascript 相关文章推荐
如何取得中文输入的真实长度?
Jun 24 Javascript
jQuery对象和DOM对象相互转化
Apr 24 Javascript
javascript 读取图片文件的大小
Jun 25 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
js数组依据下标删除元素
Apr 14 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 Javascript
从零开始搭建一个react项目开发
Feb 09 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
javascript系统时间设置操作示例
Jun 17 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 #Javascript
BootStrap modal实现拖拽功能
Dec 01 #Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
Aug 21 #Javascript
BootStrap table实现表格行拖拽效果
Dec 01 #Javascript
一次Webpack配置文件的分离实战记录
Nov 30 #Javascript
基于Vue组件化的日期联动选择器功能的实现代码
Nov 30 #Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 #Javascript
You might like
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
机械设计职业生涯规划书
2013/12/27 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
小学开学标语
2014/07/01 职场文书
车贷收入证明范本
2014/09/14 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
浅析Python实现DFA算法
2021/06/26 Python