最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue拖拽組件 vuedraggable API options實現(xiàn)盒子之間相互拖拽排序

 更新時間:2019年07月08日 10:33:38   作者:weixin186  
這篇文章主要介紹了vue拖拽組件 vuedraggable API options實現(xiàn)盒子之間相互拖拽排序克隆clone,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

vue拖拽克隆clone組件API, vue.draggable實現(xiàn)盒子之間相互拖拽排序克?。ňW(wǎng)上資源整理的文檔)

效果圖:

--------------------------------------------------------------------------------

首先需要安裝vuedraggable依賴包:

npm install vuedraggable --save

因為拖拽組件依賴sortablejs ,如果項目沒有安裝sortablejs ,可能需要安裝一下

npm install sortablejs --save

復(fù)制vue html代碼到項目:

<template>
 <div class="dndList">
 <div class="dndList-list">
 <h3>常用</h3>
 <draggable :list="list1" :options="{group:'article', disabled: disabled}"
   @start="start22"
   @end="end22"
   class="dragArea11"
   style="height: 100px">
 <div v-for="(element, index) in list1" :key="element.id" class="list-complete-item">
  <div class="list-complete-item-handle">{{element.name}}</div>
  <div>
  <i class="el-icon-delete" @click="handleDel(index, element.id)"></i>
  </div>
 </div>
 </draggable>
 </div>
 <div style="width: 100%; height: 10px; background-color: #bfbfbf"></div>
 <div class="dndList-list">
 <h3>所有</h3>
 <draggable :list="list2" :options="{group:{name: falgs,pull:'clone'},filter: '.undraggable', sort: false}"
   @end="end"
   class="dragArea">
 <div v-for="element in list2" :key="element.id"
  :class="{undraggable : element.flag}"
  class="list-complete-item">
  <div class="list-complete-item-handle2"> {{element.name}}</div>
 </div>
 </draggable>
 </div>
 </div>
</template>

下面是vue js代碼(包含css樣式):

<script>
import draggable from 'vuedraggable'
export default {
 name: 'DndList',
 components: { draggable },
 watch: {
 },
 data () {
 return {
 falgs: 'article',
 disabled: false,
 list1: [],
 list2: [{id: 1, name: 1}, {id: 2, name: 2}, {id: 3, name: 3}, 
         {id: 4, name: 4}, {id: 5, name: 5}, {id: 6, name: 6}, 
          {id: 7, name: 7}, {id: 8, name: 8}, {id: 9, name: 9}, {id: 10, name: 10}
        ]
 }
 },
 computed: {
 },
 methods: {
 end (ev) {
 if (ev.to.className === 'dragArea11') {
 this.$set(this.list2[ev.oldIndex], 'flag', true)
 }
 },
 start22 (event) {
 this.falgs = '222222'
 },
 end22 (ev) {
 this.falgs = 'article'
 },
 handleDel (index, id) {
 this.list1.splice(index, 1)
 let q = this.list2.find((value, index, arr) => {
 return value.id === id
 })
 this.$set(q, 'flag', false)
 }
 }
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
 .list-complete-item {
 cursor: pointer;
 position: relative;
 font-size: 14px;
 padding: 5px 12px;
 display: inline-block;
 margin-right: 20px;
 width: 50px;
 height: 50px;
 border: 1px solid #bfcbd9;
 transition: all 1s;
 }
 .list-complete-item.sortable-chosen {
 background: #4AB7BD;
 }
 .list-complete-item.sortable-ghost {
 background: #30B08F;
 }
 .undraggable {
 background-color: red;
 }
 .list-complete-enter,
 .list-complete-leave-active {
 opacity: 0;
 }
</style>

項目中options配置項的說明:

:options="{group:{name: falgs,pull:'clone'},filter: '.undraggable', sort: false}"

1、要實現(xiàn)兩個組件之間的拖拽,需要兩個組件的options的 group 名稱保持一致! group:'111'或者group:{name:'111'},寫法都可以。
2、group里面的 pull:'clone' 表示克隆拖拽的項,這樣配置之后,會保留被拖拽的項。
3、filter: '.undraggable' , .undraggable 在本案例中,實際上是取得html的動態(tài)樣式 undraggable,用來單獨配置某個組件是否可以重復(fù)被拖拽,可以用逗號隔開配置多個
在本案例中,拖拽一次,就被禁止再次拖拽。
4、sort,值為true或者false,是否允許拖拽排序。
5、disabled,值為true或者false,是否允許其他項目被拖拽到本組件中,false同時也禁止了本組件的拖拽功能。

--------------------------------------------------------------------------------

下面是比較全面的配置項API options說明,以及事件說明:

group參數(shù)說明:

       string:命名,個人建議用元素id就行,用處是為了設(shè)置可以拖放容器時使用,在array中的put的設(shè)置中再做介紹;
       object:{name,pull,put}
               name:同string的方法,
               pull:pull用來定義從這個列表容器移動出去的設(shè)置,true/false/'clone'/function
                   true:列表容器內(nèi)的列表單元可以被移出;
                   false:列表容器內(nèi)的列表單元不可以被移出;
                   'clone':列表單元移出,移動的為該元素的副本;
                   function:用來進行pull的函數(shù)判斷,可以進行復(fù)雜邏輯,在函數(shù)中return false/true來判斷是否移出;
               put:put用來定義往這個列表容器放置列表單元的的設(shè)置,true/false/['foo','bar']/function
                   true:列表容器可以從其他列表容器內(nèi)放入列表單元;
                   false:與true相反;
                   ['foo','bar']:這個可以是一個字符串或者是字符串的數(shù)組,代表的是group配置項里定義的name值;
                   function:用來進行put的函數(shù)判斷,可以進行復(fù)雜邏輯,在函數(shù)中return false/true來判斷是否放入;

更多參數(shù)說明:

 group: "name", // or { name: "...", pull: [true, false, clone], put: [true, false, array] }

•sort:boolean 定義是否列表單元是否可以在列表容器內(nèi)進行拖拽排序;
•delay:number 定義鼠標(biāo)選中列表單元可以開始拖動的延遲時間;
•disabled:boolean 定義是否此sortable對象是否可用,為true時sortable對象不能拖放排序等功能,為false時為可以進行排序,相當(dāng)于一個開關(guān);
•animation:number 單位:ms,定義排序動畫的時間;
•handle:selector 格式為簡單css選擇器的字符串,使列表單元中符合選擇器的元素成為拖動的手柄,只有按住拖動手柄才能使列表單元進行拖動;
•filter:selector 格式為簡單css選擇器的字符串,定義哪些列表單元不能進行拖放,可設(shè)置為多個選擇器,中間用“,”分隔;
•draggable:selector 格式為簡單css選擇器的字符串,定義哪些列表單元可以進行拖放
•ghostClass:selector 格式為簡單css選擇器的字符串,當(dāng)拖動列表單元時會生成一個副本作為影子單元來模擬被拖動單元排序的情況,此配置項就是來給這個影子單元添加一個class,我們可以通過這種方式來給影子元素進行編輯樣式;
•chosenClass:selector 格式為簡單css選擇器的字符串,當(dāng)選中列表單元時會給該單元增加一個class;
•forceFallback:boolean 如果設(shè)置為true時,將不使用原生的html5的拖放,可以修改一些拖放中元素的樣式等;
•fallbackClass:string 當(dāng)forceFallback設(shè)置為true時,拖放過程中鼠標(biāo)附著單元的樣式;
•scroll:boolean 默認(rèn)為true,當(dāng)排序的容器是個可滾動的區(qū)域,拖放可以引起區(qū)域滾動

    事件:

•onChoose:function 列表單元被選中的回調(diào)函數(shù)
•onStart:function 列表單元拖動開始的回調(diào)函數(shù)
•onEnd:function 列表單元拖放結(jié)束后的回調(diào)函數(shù)
•onAdd:function 列表單元添加到本列表容器的回調(diào)函數(shù)
•onUpdate:function 列表單元在列表容器中的排序發(fā)生變化后的回調(diào)函數(shù)
•onRemove:function 列表元素移到另一個列表容器的回調(diào)函數(shù)
•onFilter:function 試圖選中一個被filter過濾的列表單元的回調(diào)函數(shù)
•onMove:function 當(dāng)移動列表單元在一個列表容器中或者多個列表容器中的回調(diào)函數(shù)
•onClone:function 當(dāng)創(chuàng)建一個列表單元副本的時候的回調(diào)函數(shù)

   事件對象:

   事件對象在各個函數(shù)中略有不同,可通過輸出對象查看對象的屬性,下面簡單列舉幾個:

•to:HTMLElement--移動到列表容器
•from:HTMLElement--來源的列表容器
•item:HTMLElement--被移動的列表單元
•clone:HTMLElement--副本的列表單元
•oldIndex:number/undefined--在列表容器中的原序號
•newIndex:number/undefined--在列表容器中的新序號

--------------------------------------------------------------------------------

      方法

◦option(name[,value])
獲得或者設(shè)置項參數(shù),使用方法類似于jQuery用法,沒有第二個參數(shù)為獲得option中第一個參數(shù)所對應(yīng)的值,有第二個參數(shù)時,將重新賦給第一個參數(shù)所對應(yīng)的值;
◦closest
沒理解
◦toArray()
序列化可排序的列表單元的data-id(可通過配置項中dataIdAttr修改)放入一個數(shù)組,并返回這個數(shù)組中
◦sort()
通過自定義列表單元的data-id的數(shù)組對列表單元進行排序
◦save()
◦destroy()

總結(jié)

以上所述是小編給大家介紹的vue拖拽組件 vuedraggable API options實現(xiàn)盒子之間相互拖拽排序,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 使用vscode 開發(fā)uniapp的方法

    使用vscode 開發(fā)uniapp的方法

    本文給大家分享我使用vscode開發(fā)的一些配置。其中包括uniapp組件語法提示,uniapp代碼提示,代碼自動格式化問題,對vscode 開發(fā)uniapp的相關(guān)知識感興趣的朋友一起看看吧
    2021-08-08
  • vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    這篇文章主要為大家介紹了vue3數(shù)組或?qū)ο筚x值不更新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • vue2?element-ui?el-checkbox視圖不更新問題及解決

    vue2?element-ui?el-checkbox視圖不更新問題及解決

    作者在開發(fā)過程中遇到了視圖不更新的問題,最終通過改變一個無關(guān)緊要的響應(yīng)式數(shù)據(jù)來解決,讓視圖發(fā)生改變
    2024-12-12
  • vue?vue-esign簽字板的demo

    vue?vue-esign簽字板的demo

    這篇文章主要介紹了vue?vue-esign簽字板的實例講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue通過子組件修改父組件prop的多種實現(xiàn)方式

    vue通過子組件修改父組件prop的多種實現(xiàn)方式

    這篇文章主要介紹了vue通過子組件修改父組件prop的幾種實現(xiàn)方式,比較常用的方式是通過Prop單向傳遞的規(guī)則,需要的朋友可以參考下
    2021-09-09
  • Vue3項目實現(xiàn)前端導(dǎo)出Excel的示例代碼

    Vue3項目實現(xiàn)前端導(dǎo)出Excel的示例代碼

    這篇文章主要介紹了Vue3項目實現(xiàn)前端導(dǎo)出Excel的示例,在vue3的項目中導(dǎo)出Excel表格的功能,可以借助xlsx庫來實現(xiàn),下面是詳細(xì)的操作步驟,需要的朋友可以參考下
    2025-01-01
  • Vue學(xué)習(xí)筆記之計算屬性與偵聽器用法

    Vue學(xué)習(xí)筆記之計算屬性與偵聽器用法

    這篇文章主要介紹了Vue學(xué)習(xí)筆記之計算屬性與偵聽器用法,結(jié)合實例形式詳細(xì)分析了vue.js計算屬性與偵聽器基本功能、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-12-12
  • Vue3監(jiān)聽屬性與Computed的區(qū)別詳解

    Vue3監(jiān)聽屬性與Computed的區(qū)別詳解

    在 Vue 3 中,watch 和 computed 都是非常重要的概念,它們都可以用于觀察和響應(yīng)數(shù)據(jù)的變化,但在使用場景和原理上存在明顯的區(qū)別,本文將詳細(xì)解析 Vue 3 中監(jiān)聽屬性 (watch) 和計算屬性 (computed) 的區(qū)別,需要的朋友可以參考下
    2024-02-02
  • vuex中使用modules時遇到的坑及問題

    vuex中使用modules時遇到的坑及問題

    這篇文章主要介紹了vuex中使用modules時遇到的坑及問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕(操作方法)

    vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕(操作方法)

    這篇文章主要介紹了vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論

通江县| 祥云县| 凤翔县| 将乐县| 土默特右旗| 浏阳市| 南京市| 额尔古纳市| 盐津县| 隆安县| 沧源| 大新县| 江华| 嘉荫县| 宜章县| 景谷| 丰台区| 沈丘县| 安乡县| 象州县| 富顺县| 乡城县| 岗巴县| 上蔡县| 合水县| 阿克| 扎赉特旗| 新绛县| 塔城市| 常德市| 和顺县| 醴陵市| 南宁市| 海晏县| 丰城市| 乌恰县| 渑池县| 融水| 台安县| 绥中县| 金秀|