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...
相關文章
- 實現小程式canvas拖拽功能Canvas
- angualr實現滑鼠拖拽排序功能排序
- 怎麼使用 pyqt5 的 textEdit 控制元件,實現拖拽功能?QT控制元件
- 使用BottomSheetBehavior實現美團拖拽效果
- CSS 奇思妙想 | 使用 resize 實現強大的圖片拖拽切換預覽功能CSS
- 實現element-ui對話方塊可拖拽功能UI
- [WPF]原生TabControl控制元件實現拖拽排序功能控制元件排序
- [C#] [WPF] 在MVVM中實現拖拽功能 - 入門C#MVVM
- Cypress實現拖拽
- 用vuejs2.0實現淘寶規格彈窗VueJS
- flutter實現可縮放可拖拽雙擊放大的圖片功能Flutter
- Figma數值輸入框支援拖拽調整功能實現
- react中使用dnd-kit實現拖拽排序React排序
- 實現QQ的TabBar拖拽動效tabBar
- Grid 拖拽佈局實現
- 基於vue-simplemde實現圖片拖拽、貼上功能的一些思考Vue
- HTML5拖拽API實現vue樹形拖拽元件HTMLAPIVue元件
- 基於Vue實現拖拽升級(九宮格拖拽)Vue
- 使用TypeScript給Vue 3.0寫一個指令實現元件拖拽TypeScriptVue元件
- ItemTouchHelper實現可拖拽和側滑的列表
- 使用redis實現互粉功能Redis
- 使用 jQuery 實現分頁功能jQuery
- 用RecyclerView實現類似支付寶應用圖示拖拽排序以及增刪管理的功能View排序
- Easyui datagrid 實現表格記錄拖拽UI
- Jquery實現拖拽式繪圖工具jQuery繪圖
- vxe-table 實現列拖拽排序排序
- 使用java實現希表的基礎功能Java
- 使用IDEA+Maven實現MapReduce的WordCount功能IdeaMaven
- Go使用websocket實現彈幕功能GoWeb
- Yii使用DbTarget實現日誌功能
- postgresql使用pgagent來實現job功能SQL
- 如何使用Python 實現秒錶功能?Python
- 簡單介紹vue3.x 使用jsplumb實現拖拽連線VueJS
- [MAUI]實現動態拖拽排序網格UI排序
- 使用Redis的有序集合實現排行榜功能Redis
- React 實現炫酷的可拖拽網格佈局React
- 拖拽元件:React DnD 的使用元件React
- 拖放排序外掛Sortable.js排序JS