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載入。
實現效果
實現後的效果如圖所示:
其中滑鼠放到紅色的id1,id2,id3,id4可以進行拖動。
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(['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);
}
}
})
})
裡面的可配置的很多細節請參考參考地址,這裡不做詳細介紹。
頁面展示地址:https://hxlmqtily1314.github....
github地址:https://github.com/hxlmqtily1...
參考地址:https://github.com/SortableJS...
相關文章
- 原生js實現拖拽功能JS
- 實現小程式canvas拖拽功能Canvas
- Ext實現資料拖拽功能
- angualr實現滑鼠拖拽排序功能排序
- 怎麼使用 pyqt5 的 textEdit 控制元件,實現拖拽功能?QT控制元件
- RecyclerView 實現滑動刪除和拖拽功能View
- RecyclerView實現滑動刪除和拖拽功能View
- 使用BottomSheetBehavior實現美團拖拽效果
- 原生實現元素的拖拽
- Cypress實現拖拽
- 實現element-ui對話方塊可拖拽功能UI
- [C#] [WPF] 在MVVM中實現拖拽功能 - 入門C#MVVM
- 用vuejs2.0實現淘寶規格彈窗VueJS
- CSS 奇思妙想 | 使用 resize 實現強大的圖片拖拽切換預覽功能CSS
- flutter實現可縮放可拖拽雙擊放大的圖片功能Flutter
- react中使用dnd-kit實現拖拽排序React排序
- 「實戰」純React實現的拖拽元件React元件
- C#影象顯示實現拖拽、錨點縮放功能【轉】C#
- Figma數值輸入框支援拖拽調整功能實現
- 實現QQ的TabBar拖拽動效tabBar
- [WPF]原生TabControl控制元件實現拖拽排序功能控制元件排序
- 基於Vue實現拖拽升級(九宮格拖拽)Vue
- HTML5拖拽API實現vue樹形拖拽元件HTMLAPIVue元件
- UI 進階之拖拽排序的實現UI排序
- 基於vue-simplemde實現圖片拖拽、貼上功能的一些思考Vue
- Grid 拖拽佈局實現
- 使用Webcam實現拍照功能Web
- 使用TypeScript給Vue 3.0寫一個指令實現元件拖拽TypeScriptVue元件
- 使用 Fresco 實現大圖瀏覽(支援手勢放大、拖拽)
- ItemTouchHelper實現可拖拽和側滑的列表
- Jquery實現拖拽式繪圖工具jQuery繪圖
- 使用 jQuery 實現分頁功能jQuery
- 使用redis實現互粉功能Redis
- 使用VB實現OLE拖放功能
- 實現collectionViewCell的移動(長按或者直接拖拽)View
- 使用java實現希表的基礎功能Java
- 使用sql profile實現outline的功能SQL
- 用RecyclerView實現類似支付寶應用圖示拖拽排序以及增刪管理的功能View排序