vue-draggable實(shí)現(xiàn)pc端拖拽效果
本文實(shí)例為大家分享了vue-draggable實(shí)現(xiàn)pc端拖拽效果的具體代碼,供大家參考,具體內(nèi)容如下
為了實(shí)現(xiàn)下面這種布局可拖拽整合調(diào)整位置
拖拽前:

拖拽后:

一、安裝
npm i -S vuedraggable
二、使用
引入:
import draggable from 'vuedraggable'
注冊(cè)
components:{
? ? ? draggable
? ? },使用
<draggable :options="{group:'people',animation:150,ghostClass:'sortable-ghost',chosenClass:'chosenClass',scroll:true,scrollSensitivity:200}"
? ? ? ? ? ? ? ?v-model="list2"
? ? ? ? ? ? ? ?@change="change"
? ? ? ? ? ? ? ?@start="start"
? ? ? ? ? ? ? ?@end="end"
? ? ? ? ? ? ? ?:move="move"
? ? ? ? ? ? ? ?style="display: inline-block; width:190px;height: 200px;background: #eee;overflow: auto">
? ? ? <li v-for="(item, index) in list2"
? ? ? ? ? :key="index">
? ? ? ? {{item.name}}
? ? ? </li>
</draggable>list2:[{value:1,name:"中國(guó)"},{value:1,name:"中國(guó)"},{value:1,name:"中國(guó)"}],事件:
//evt里面有兩個(gè)值,一個(gè)evt.added 和evt.removed ?可以分別知道移動(dòng)元素的ID和刪除元素的ID
? ? change: function (evt) {
? ? ? console.log(evt)
? ? },
? ? //start ,end ,add,update, sort, remove 得到的都差不多
? ? start: function (evt) {
? ? ? console.log(evt)
? ? },
? ? end: function (evt) {
? ? ? console.log(evt)
? ? ? evt.item //可以知道拖動(dòng)的本身
? ? ? evt.to ? ?// 可以知道拖動(dòng)的目標(biāo)列表
? ? ? evt.from ?// 可以知道之前的列表
? ? ? evt.oldIndex ?// 可以知道拖動(dòng)前的位置
? ? ? evt.newIndex ?// 可以知道拖動(dòng)后的位置
? ? },
? ? move: function (evt, originalEvent) {
? ? ? console.log(evt)
? ? ? console.log(originalEvent) //鼠標(biāo)位置
? ? }屬性
group: "name", ?// or { name: "...", pull: [true, false, clone], put: [true, false, array] } name相同的組可以互相拖動(dòng)
? sort: true, ?// 內(nèi)部排序列表
? delay: 0, // 以毫秒為單位定義排序何時(shí)開(kāi)始。
? touchStartThreshold: 0, // px,在取消延遲拖動(dòng)事件之前,點(diǎn)應(yīng)該移動(dòng)多少像素?
? disabled: false, // 如果設(shè)置為真,則禁用sortable。
? store: null, ?// @see Store
? animation: 150, ?// ms, 動(dòng)畫(huà)速度運(yùn)動(dòng)項(xiàng)目排序時(shí),' 0 ' -沒(méi)有動(dòng)畫(huà)。
? handle: ".my-handle", ?// 在列表項(xiàng)中拖動(dòng)句柄選擇器。
? filter: ".ignore-elements", ?// 不導(dǎo)致拖拽的選擇器(字符串或函數(shù))
? preventOnFilter: true, // 調(diào)用“event.preventDefault()”時(shí)觸發(fā)“filter”
? draggable: ".item", ?// 指定元素中的哪些項(xiàng)應(yīng)該是可拖動(dòng)的。
? ghostClass: "sortable-ghost", ?// 設(shè)置拖動(dòng)元素的class的占位符的類(lèi)名。
? chosenClass: "sortable-chosen", ?// 設(shè)置被選中的元素的class
? dragClass: "sortable-drag", ?//拖動(dòng)元素的class。
? dataIdAttr: 'data-id',
? forceFallback: false, ?// 忽略HTML5的DnD行為,并強(qiáng)制退出。(h5里有個(gè)屬性也是拖動(dòng),這里是為了去掉H5拖動(dòng)對(duì)這個(gè)的影響)
? fallbackClass: "sortable-fallback", ?// 使用forceFallback時(shí)克隆的DOM元素的類(lèi)名。
? fallbackOnBody: false, ?// 將克隆的DOM元素添加到文檔的主體中。(默認(rèn)放在被拖動(dòng)元素的同級(jí))
? fallbackTolerance: 0, // 用像素指定鼠標(biāo)在被視為拖拽之前應(yīng)該移動(dòng)的距離。
? scroll: true, // or HTMLElement
? scrollFn: function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl) { ... }, // if you have custom scrollbar scrollFn may be used for autoscrolling
scrollSensitivity: 30, // px, how near the mouse must be to an edge to start scrolling.
? scrollSpeed: 10, // pxslot:
使用footer插槽在vuedraggable組件內(nèi)添加不可拖動(dòng)的元素。重要:它應(yīng)該與可拖動(dòng)選項(xiàng)一起使用,以標(biāo)記可拖拽元素。注意,在默認(rèn)情況下,頁(yè)腳槽將始終被添加
<draggable v-model="myArray" :options="{draggable:'.item'}">
? ? <div v-for="element in myArray" :key="element.id" class="item">
? ? ? ? {{element.name}}
? ? </div>
? ? <button slot="footer" @click="addPeople">Add</button>
</draggable>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于antd-vue?a-menu菜單綁定路由的相關(guān)問(wèn)題
這篇文章主要介紹了關(guān)于antd-vue?a-menu菜單綁定路由的相關(guān)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue中watch的實(shí)際開(kāi)發(fā)學(xué)習(xí)筆記
watch是Vue實(shí)例的一個(gè)屬性是用來(lái)響應(yīng)數(shù)據(jù)的變化,需要在數(shù)據(jù)變化時(shí)執(zhí)行異步或開(kāi)銷(xiāo)較大的操作時(shí),這個(gè)方式是最有用的,下面這篇文章主要給大家介紹了關(guān)于vue中watch的實(shí)際開(kāi)發(fā)筆記,需要的朋友可以參考下2022-11-11
詳解Vue SPA項(xiàng)目?jī)?yōu)化小記
這篇文章主要介紹了詳解Vue SPA項(xiàng)目?jī)?yōu)化小記,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
uni-app項(xiàng)目中引入Vant?UI組件庫(kù)完美避坑指南(純凈版)
網(wǎng)上百度uniapp使用vant時(shí),很多答案都是在根路徑下創(chuàng)建文件夾,而且都是基于小程序環(huán)境的,其實(shí)uniapp可以直接使用的,這篇文章主要給大家介紹了關(guān)于uni-app項(xiàng)目中引入Vant?UI組件庫(kù)完美避坑指南的相關(guān)資料,需要的朋友可以參考下2024-02-02
vue中使用echarts實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)
總結(jié)一下自己最近項(xiàng)目中用echarts動(dòng)態(tài)獲取接口數(shù)據(jù)并畫(huà)圖的方法,下面這篇文章主要給大家介紹了關(guān)于vue中使用echarts實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定以及獲取后端接口數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-07-07
vue2.x?el-table二次封裝實(shí)現(xiàn)編輯修改
本文主要介紹了vue2.x?el-table二次封裝實(shí)現(xiàn)編輯修改,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

