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

前端之家收集整理的这篇文章主要介绍了vuejs2.0使用Sortable.js实现的拖拽功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

简介

在使用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">
                class="styleclass dargDiv">{{element.id}}</div="styleclass">{{element.it.name}}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{100px;
    float:left;
}
.list-complete-enter,.list-complete-leave-active {
  opacity: 0;
  height: 0px;
  margin-top:
  padding:
  border: solid 0px;
}
.list-complete-sortable-chosen,.list-complete-sortable-ghost{
 opacity:
.dargDiv{
    cursor:move;red;
}
.wrods{50px;
}
p{center;
}

js代码

require.config({
    urlArgs: "ver=1.0_0",paths:{
        "vue":'vue.min2'    
    },shim:{
        'vue':{
            exports:'vue'
        } 
    }
}),require(['vue','vuedraggable'],function(Vue,draggable){
    Vue.component('draggable'new Vue({
        el: '#example'}},{id:"id2",it:{name:'2222'}}
           ]
        },methods:{
            getdata: (evt){
                console.log(evt.draggedContext.element.id);
            },datadragEnd:(evt){
                console.log('拖动前的索引:'+evt.oldIndex);
                console.log('拖动后的索引:'+evt.newIndex);
                
            }
            
        }
    })
    
})

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

页面展示地址:https://hxlmqtily1314.github.io/Vue.Draggable-case/
github地址:https://github.com/hxlmqtily1314/Vue.Draggable-case

参考地址:https://github.com/SortableJS/Vue.Draggable

猜你在找的Vue相关文章