vue中draggable拖拽列表的使用

官方示例:https://david-desmaisons.github.io/draggable-example/

1.安裝

npm install vuedraggable  
或者使用鏡像安裝
cnpm install vuedraggable  

2.使用

首先在使用的組件中引入

import draggable from 'vuedraggable'

接著在組件中注冊

components: { 
  draggable
}

頁面使用

<draggable :options="{animation:380}"
          v-model="dataList"
          @change="change"
          @start="start"
          @end="end"
          :move="move">
    <li v-for="(item, index) in dataList"   :class="setclass(item,index)"  :key="index">
          {{item.name}}
    </li>
</draggable>

事件

<script>
  methods:{
        //evt里面有兩個值旷偿,一個evt.added 和evt.removed  可以分別知道移動元素的ID和刪除元素的ID
     change (evt) {
          console.log(evt)
      },
      //start ,end ,add,update, sort, remove 得到的都差不多
      start (evt) { 
          console.log(evt)
      },
      end (evt) {
          console.log(evt)
          evt.item //可以知道拖動的本身
          evt.to    // 可以知道拖動的目標列表
          evt.from  // 可以知道之前的列表
          evt.oldIndex  // 可以知道拖動前的位置
          evt.newIndex  // 可以知道拖動后的位置
      },
      move (evt, originalEvent) {
          console.log(evt)
          console.log(originalEvent) //鼠標位置
      }
  }
</script>

option屬性配置

 group: "name",  // or { name: "...", pull: [true, false, clone], put: [true, false, array] } name相同的組可以互相拖動
 sort: true,  // 內(nèi)部排序列表
 delay: 0, // 以毫秒為單位定義排序何時開始邻梆。
 touchStartThreshold: 0, // px,在取消延遲拖動事件之前,點應(yīng)該移動多少像素?
 disabled: false, // 如果設(shè)置為真滑肉,則禁用sortable一姿。
 store: null,  // @see Store
 animation: 150,  // ms, 動畫速度運動項目排序時七咧,' 0 ' -沒有動畫跃惫。
 handle: ".my-handle",  // 在列表項中拖動句柄選擇器。
 filter: ".ignore-elements",  // 不導致拖拽的選擇器(字符串或函數(shù))
 preventOnFilter: true, // 調(diào)用“event.preventDefault()”時觸發(fā)“filter”
 draggable: ".item",  // 指定元素中的哪些項應(yīng)該是可拖動的艾栋。
 ghostClass: "sortable-ghost",  // 設(shè)置拖動元素的class的占位符的類名爆存。
 chosenClass: "sortable-chosen",  // 設(shè)置被選中的元素的class
 dragClass: "sortable-drag",  //拖動元素的class。
 dataIdAttr: 'data-id',
 forceFallback: false,  // 忽略HTML5的DnD行為蝗砾,并強制退出先较。(h5里有個屬性也是拖動,這里是為了去掉H5拖動對這個的影響)
 fallbackClass: "sortable-fallback",  // 使用forceFallback時克隆的DOM元素的類名悼粮。
 fallbackOnBody: false,  // 將克隆的DOM元素添加到文檔的主體中闲勺。(默認放在被拖動元素的同級)
 fallbackTolerance: 0, // 用像素指定鼠標在被視為拖拽之前應(yīng)該移動的距離。
 scroll: true, // or HTMLElement
 scrollFn: function(offsetX, offsetY, originalEvent, touchEvt, hoverTargetEl) { ... }
 scrollSensitivity: 30, // px, how near the mouse must be to an edge to start scrolling.
 scrollSpeed: 10, // px

slot
使用footer插槽在vuedraggable組件內(nèi)添加不可拖動的元素矮锈。重要:它應(yīng)該與可拖動選項一起使用霉翔,以標記可拖拽元素。注意苞笨,在默認情況下债朵,頁腳槽將始終被添加

<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>

如果項目報警告

vue Do not use v-for index as key on <transition-group> children, this is the same as not using keys
報錯的意思是:在<transition-group>子元素上,不要使用v-for索引作為鍵瀑凝,否則與不使用鍵相同
解決辦法: 把你列表循環(huán) :key=“index” index可以換成 id 或者 給Index 隨便加個數(shù)字 :key="item.id" 或者 :key="index + 10"

詳情參考:
Vue.Draggable https://github.com/SortableJS/Vue.Draggable
Sortable https://github.com/RubaXa/Sortable

原文鏈接:http://www.reibang.com/p/03f0f58f84cc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末序芦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子粤咪,更是在濱河造成了極大的恐慌谚中,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寥枝,死亡現(xiàn)場離奇詭異宪塔,居然都是意外死亡,警方通過查閱死者的電腦和手機囊拜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門某筐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冠跷,你說我怎么就攤上這事南誊。” “怎么了蜜托?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵抄囚,是天一觀的道長。 經(jīng)常有香客問我橄务,道長幔托,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任蜂挪,我火速辦了婚禮柑司,結(jié)果婚禮上迫肖,老公的妹妹穿的比我還像新娘。我一直安慰自己攒驰,他們只是感情好蟆湖,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著玻粪,像睡著了一般隅津。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上劲室,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天伦仍,我揣著相機與錄音,去河邊找鬼很洋。 笑死充蓝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的喉磁。 我是一名探鬼主播谓苟,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼协怒!你這毒婦竟也來了涝焙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤孕暇,失蹤者是張志新(化名)和其女友劉穎仑撞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妖滔,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡隧哮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了座舍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沮翔。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖簸州,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歧譬,我是刑警寧澤岸浑,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站瑰步,受9級特大地震影響矢洲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缩焦,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一读虏、第九天 我趴在偏房一處隱蔽的房頂上張望责静。 院中可真熱鬧,春花似錦盖桥、人聲如沸灾螃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腰鬼。三九已至,卻和暖如春塑荒,著一層夾襖步出監(jiān)牢的瞬間熄赡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工齿税, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留彼硫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓凌箕,卻偏偏與公主長得像拧篮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子陌知,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348