时间:2021-05-26
简介
在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jquery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组。但是当把vue升级到2.0以上后发现拖拽功能失效了,于是使用了下面代码。
该案例主要是在用于vuejs2.0中实现的拖拽功能,用到的的js有Sortable.js,vuedraggable.js,当然还有vue.min.js,提供的案例使用的require.js加载。
实现效果
实现后的效果如图所示:
html主要代码
<draggable :list="list2" :move="getdata" @update="datadragEnd" :options="{animation: 300,handle:'.dargDiv'}"> <transition-group name="list-complete" > <div v-for="element in list2" :key="element.it.name" class="list-complete-item"> <div class="styleclass dargDiv">{{element.id}}</div> <div class="styleclass">{{element.it.name}}</div> </div> </transition-group> </draggable>css代码
body{ font-family:'微软雅黑'}[v-cloak]{ display:none;}#example{ width:1000px; margin:0 auto;}.list-complete-item { transition: all 1s; height:50px; line-height: 50px; background: #000; color:#fff; text-align: center; font-size:24px; margin-top:10px;}.styleclass{ width:100px; float:left;}.list-complete-enter, .list-complete-leave-active { opacity: 0; height: 0px; margin-top: 0px; padding: 0px; border: solid 0px;}.list-complete-sortable-chosen,.list-complete-sortable-ghost{ opacity: 0; height: 0px; margin-top: 0px; padding: 0px; border: solid 0px;}.dargDiv{ cursor:move; background:red;}.wrods{ margin-top:50px;}p{ line-height:24px; text-align:center;}js代码
require.config({ urlArgs: "ver=1.0_0", paths:{ "vue":'vue.min2', "sortablejs":'Sortable', "vuedraggable":'vuedraggable' }, shim:{ 'vue':{ exports:'vue' } }}),require(['vue','vuedraggable'],function(Vue,draggable){ Vue.component('draggable', draggable); new Vue({ el: '#example', data: { list2:[ {id:"id1",it:{name:'bbbb'}}, {id:"id2",it:{name:'2222'}}, {id:"id3",it:{name:'3333'}}, {id:"id4",it:{name:'4444'}} ] }, methods:{ getdata: function(evt){ console.log(evt.draggedContext.element.id); }, datadragEnd:function(evt){ console.log('拖动前的索引:'+evt.oldIndex); console.log('拖动后的索引:'+evt.newIndex); } } }) })里面的可配置的很多细节请参考参考地址,这里不做详细介绍。
可下载案例地址:Vue.Draggable-case_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
背景1、vue项目中的表格需要实现行拖拽功能2、表格使用element组件库中el-table方案介绍Sortable.js介绍:Sortable.js是一款轻
Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。具体说明,请参考:学习链接npm官方演示:vuedraggable特性:支持触摸设
最近公司项目经常用到一个拖拽Sortable.js插件,所以有空的时候看了Sortable.js源码,总共1300多行这样,写的挺完美的。官网:http://r
本文给大家介绍vue使用sortable实现el-table拖拽排序功能,具体内容如下所示:npm下载:npminstallsortablejs--save引入
本文实例讲述了Vue2.0实现组件之间数据交互和通信操作。分享给大家供大家参考,具体如下:Vue2.0组件之间数据交互和通信。Vue2.0废弃了dispatch