vue2.0使用Sortable.js实现的拖拽功能

vue

简介

在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jQuery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组。但是当把vue升级到2.0以上后发现拖拽功能失效了,于是使用了下面代码。

该案例主要是在用于vuejs2.0中实现的拖拽功能,用到的的js有Sortable.js,vuedraggable.js,当然还有vue.min.js,提供的案例使用的require.js加载.

html主要代码

1 <draggable :list="list2" :move="getdata" @update="datadragEnd" :options="{animation: 300,handle:'.dargDiv'}">

2 <transition-group name="list-complete" >

3 <div v-for="element in list2" :key="element.it.name" class="list-complete-item">

4 <div class="styleclass dargDiv">{{element.id}}</div>

5 <div class="styleclass">{{element.it.name}}</div>

6

7 </div>

8 </transition-group>

9 </draggable>

css代码

 1 body{

2 font-family:'微软雅黑'

3 }

4 [v-cloak]{

5 display:none;

6 }

7 #example{

8 width:1000px;

9 margin:0 auto;

10 }

11 .list-complete-item {

12 transition: all 1s;

13 height:50px;

14 line-height: 50px;

15 background: #000;

16 color:#fff;

17 text-align: center;

18 font-size:24px;

19 margin-top:10px;

20 }

21 .styleclass{

22 width:100px;

23 float:left;

24 }

25 .list-complete-enter, .list-complete-leave-active {

26 opacity: 0;

27 height: 0px;

28 margin-top: 0px;

29 padding: 0px;

30 border: solid 0px;

31 }

32 .list-complete-sortable-chosen,.list-complete-sortable-ghost{

33 opacity: 0;

34 height: 0px;

35 margin-top: 0px;

36 padding: 0px;

37 border: solid 0px;

38 }

39 .dargDiv{

40 cursor:move;

41 background:red;

42 }

43 .wrods{

44 margin-top:50px;

45 }

46 p{

47 line-height:24px;

48 text-align:center;

49 }

js代码

 1 require(['vue','vuedraggable'],function(Vue,draggable){

2 Vue.component('draggable', draggable);

3 new Vue({

4 el: '#example',

5 data: {

6 list2:[

7 {id:"id1",it:{name:'bbbb'}},

8 {id:"id2",it:{name:'2222'}},

9 {id:"id3",it:{name:'3333'}},

10 {id:"id4",it:{name:'4444'}}

11 ]

12 },

13 methods:{

14 getdata: function(evt){

15 console.log(evt.draggedContext.element.id);

16 },

17 datadragEnd:function(evt){

18 console.log('拖动前的索引:'+evt.oldIndex);

19 console.log('拖动后的索引:'+evt.newIndex);

20

21 }

22

23 }

24 })

25

26 })

里面的可配置的很多细节请参考参考地址,这里不做详细介绍.

可下载案例地址:https://github.com/hxlmqtily1314/Vue.Draggable-case
参考地址:https://github.com/SortableJS/Vue.Draggable

以上是 vue2.0使用Sortable.js实现的拖拽功能 的全部内容, 来源链接: utcz.com/z/377854.html

回到顶部