Vue.Draggable使用文檔超詳細(xì)總結(jié)
前言
Draggable為基于Sortable.js的vue組件,用以實(shí)現(xiàn)拖拽功能。
關(guān)于Vue.Draggable詳細(xì)信息可以查看github地址
特性
- 支持觸摸設(shè)備
- 支持拖拽和選擇文本
- 支持智能滾動(dòng)
- 支持不同列表之間的拖拽
- 不以jQuery為基礎(chǔ)
- 和視圖模型同步刷新
- 和vue2的國(guó)度動(dòng)畫兼容
- 支持撤銷操作
- 當(dāng)需要完全控制時(shí),可以拋出所有變化
- 可以和現(xiàn)有的UI組件兼容
安裝
npm install vuedraggable
引入
import draggable from 'vuedraggable'
基礎(chǔ)用法
定義一個(gè)json串 list,實(shí)現(xiàn)它的拖拽排序。
<draggable v-model="list"> <transition-group> <div v-for="element in list" :key="element.id"> {{element.name}} </div> </transition-group> </draggable>
屬性
參數(shù) | 說(shuō)明 | 類型 | 默認(rèn)值 |
---|---|---|---|
value | 用于實(shí)現(xiàn)拖拽的list,通常和內(nèi)部v-for循環(huán)的數(shù)組為同一數(shù)組 | Array | null |
list | 效果同value的。和v-model不能共用 | Array | null |
tag | draggable 標(biāo)簽在渲染后展現(xiàn)出來(lái)的標(biāo)簽類型 | String | div |
options | draggable 列表配置項(xiàng) | Object | null |
emptyInsertThreshold | 拖動(dòng)時(shí),鼠標(biāo)必須與空的可排序?qū)ο笾g的距離 | Number | 5 |
clone | 返回值為true時(shí)克隆,可以理解為正常的拖拽變成了復(fù)制。當(dāng)pull:'clone時(shí)的拖拽的回調(diào)函數(shù)’ | Function | 無(wú)處理 |
move | 如果不為空,這個(gè)函數(shù)將以類似于Sortable onMove回調(diào)的方式調(diào)用。返回false將取消拖動(dòng)操作。 | Function | null |
componentData | 用來(lái)結(jié)合UI組件的,可以理解為代理了UI組件的定制信息 | Object | null |
注意:vuedraggable新版本廢棄了options屬性,建議使用v-bind屬性作為配置項(xiàng)
options配置項(xiàng)
參數(shù) | 說(shuō)明 | 類型 |
---|---|---|
group | 用于分組,同一組的不同list可以相互拖動(dòng) | String/Array |
sort | 定義是否可以拖拽 | Boolean |
delay | 定義鼠標(biāo)選中列表單元可以開始拖動(dòng)的延遲時(shí)間 | Number |
disabled | 定義是否此sortable對(duì)象是否可用 | Boolean |
animation | 動(dòng)畫時(shí)間 單位:ms | Number |
handle | 使列表單元中符合選擇器的元素成為拖動(dòng)的手柄,只有按住拖動(dòng)手柄才能使列表單元進(jìn)行拖動(dòng) | Selector |
filter | 定義哪些列表單元不能進(jìn)行拖放,可設(shè)置為多個(gè)選擇器,中間用“,”分隔 | Selector |
preventOnFilter | 當(dāng)拖動(dòng)filter時(shí)是否觸發(fā)event.preventDefault() 默認(rèn)觸發(fā) | Boolean |
draggable | 定義哪些列表單元可以進(jìn)行拖放 | Selector |
ghostClass | 當(dāng)拖動(dòng)列表單元時(shí)會(huì)生成一個(gè)副本作為影子單元來(lái)模擬被拖動(dòng)單元排序的情況,此配置項(xiàng)就是來(lái)給這個(gè)影子單元添加一個(gè)class | Selector |
chosenClass | 目標(biāo)被選中時(shí)添加 | Selector |
dragClass | 目標(biāo)拖動(dòng)過(guò)程中添加 | Selector |
forceFallback | 如果設(shè)置為true時(shí),將不使用原生的html5的拖放,可以修改一些拖放中元素的樣式等 | Boolean |
fallbackClass: | 當(dāng)forceFallback設(shè)置為true時(shí),拖放過(guò)程中鼠標(biāo)附著單元的樣式 | String |
dataIdAttr | data-id | Selector |
scroll | 當(dāng)排序的容器是個(gè)可滾動(dòng)的區(qū)域,拖放可以引起區(qū)域滾動(dòng) | Boolean |
scrollFn | 用于自定義滾動(dòng)條的適配 | Function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl) |
ScrollSensitivity | 就是鼠標(biāo)靠近邊緣多遠(yuǎn)開始滾動(dòng)默認(rèn)30 | Number |
scrollSpeed | 滾動(dòng)速度 | Number |
事件
參數(shù) | 說(shuō)明 | 回調(diào)參數(shù) |
---|---|---|
start | 開始拖動(dòng)時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
add | 添加單元時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
remove | 單元被移動(dòng)到另一個(gè)列表時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
update | 排序發(fā)生變化時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
end | 拖動(dòng)結(jié)束時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
choose | 選擇單元時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
sort | 排序發(fā)生變化時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
filter | 嘗試選擇一個(gè)被filter過(guò)濾的單元的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
clone | clone時(shí)的回調(diào)函數(shù) | function({to,from,item,clone,oldIndex,newIndex}) |
插槽
頁(yè)眉或頁(yè)腳插槽都不能與 tarnstion-group 一起使用。
Header
使用標(biāo)題插槽在vuedraggable組件中添加不可拖動(dòng)的元素。它應(yīng)該與draggable選項(xiàng)一起使用來(lái)標(biāo)記draggable元素。請(qǐng)注意,無(wú)論標(biāo)題槽在模板中的位置如何,它總是被添加到默認(rèn)槽之前。
<draggable v-model="myArray" draggable=".item"> <div v-for="element in myArray" :key="element.id" class="item"> {{element.name}} </div> <button slot="header" @click="addPeople">Add</button> </draggable>
Footer
使用頁(yè)腳槽在vuedraggable組件中添加不可拖動(dòng)的元素。它應(yīng)該與draggable選項(xiàng)一起使用,以標(biāo)記draggable元素。請(qǐng)注意,無(wú)論頁(yè)腳槽在模板中的位置如何,它都將始終添加到默認(rèn)槽之后。
<draggable v-model="myArray" draggable=".item"> <div v-for="element in myArray" :key="element.id" class="item"> {{element.name}} </div> <button slot="footer" @click="addPeople">Add</button> </draggable>
總結(jié)
到此這篇關(guān)于Vue.Draggable使用文檔超的文章就介紹到這了,更多相關(guān)Vue.Draggable使用文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)實(shí)時(shí)上傳文件進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)實(shí)時(shí)上傳文件進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Vue分別運(yùn)用class綁定和style綁定通過(guò)點(diǎn)擊實(shí)現(xiàn)樣式切換
這篇文章主要為大家介紹了Vue分別運(yùn)用class綁定和style綁定通過(guò)點(diǎn)擊實(shí)現(xiàn)樣式切換,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用實(shí)戰(zhàn)教程
這篇文章主要介紹了基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用,這次給大家主要分享的是基于electron最新版本整合vite4.x構(gòu)建vue3桌面端應(yīng)用程序,需要的朋友可以參考下2023-05-05vue實(shí)現(xiàn)頁(yè)面div盒子拖拽排序功能
本文主要介紹了vue實(shí)現(xiàn)頁(yè)面div盒子拖拽排序功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10關(guān)于element-ui?單選框默認(rèn)值不選中的解決
這篇文章主要介紹了關(guān)于element-ui?單選框默認(rèn)值不選中的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09element-ui滾動(dòng)條el-scrollbar置底方式
這篇文章主要介紹了element-ui滾動(dòng)條el-scrollbar置底方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08