日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vuedraggable示例_vuedraggable快速入门

發(fā)布時間:2024/7/5 vue 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vuedraggable示例_vuedraggable快速入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

value和list

這兩個都可以給一個draggable注入數(shù)據(jù)源:

/*value注入數(shù)據(jù)源*/

export default {

data() {

return {

list:[{

name:'aaa',id:1,

},{

name:'bbb',id:2,

}]

};

}

}

/*list注入數(shù)據(jù)源頭*/

export default {

data() {

return {

list:[{

name:'aaa',id:1,

},{

name:'bbb',id:2,

}]

};

}

}

它們的區(qū)別是:value注入的,如果發(fā)生了拖拽,value的數(shù)據(jù)并不會跟著變化,list注入的,則會發(fā)生變化。

也就是說value注入的,后續(xù)有無變化都和數(shù)據(jù)體沒關(guān)系,它用于只需要展示拖拽效果的地方;list注入的,數(shù)據(jù)體和當前頁面上的屬性是保持一致的,頁面上的順序變了,內(nèi)部數(shù)組對應(yīng)的結(jié)構(gòu)體數(shù)組的順序也會重新排列,和顯示保持一致。

注意,它們不能同時出現(xiàn),只能二選一。

ghost-class和handle

ghost指的在拖拽體原本位置占坑的那個元素:

ghost-class就是給占坑元素設(shè)置樣式:

.ghost {

opacity: 0.5;

background: #c8ebfb;

}

handle是拖拽的把手,表示拖拽元素指定可拖拽的部分:

正常情況下拖拽元素的整體都是可拖拽的,加了handle之后,只能指定的地方可以拖拽了,其他地方不能進行拖拽:

{{ element.name }}

tag和componentData

對于一些特定的原生組合標簽,例如ul,li或者table,tr還有tr,td之類的,可以指定一個tag,讓draggable替換成指定的標簽:

{{ item.id }}{{ item.name }}{{ item.sport }}

例如上面的draggable就會被替換成table。

componentData和tag類似,但是是對于那種組合組件的,例如在ElementUI中的折疊面邊,el-collapse和el-collapse-item就是這種組合關(guān)系:

與現(xiàn)實生活一致:與現(xiàn)實生活的流程、邏輯保持一致,遵循用戶習慣的語言和概念;在界面中一致:所有的元素和結(jié)構(gòu)需保持一致,比如:設(shè)計樣式、圖標和文本、元素的位置等。控制反饋:通過界面樣式和交互動效讓用戶可以清晰的感知自己的操作;頁面反饋:操作后,通過頁面元素的變化清晰地展現(xiàn)當前狀態(tài)。

對于上面那種情況,如果要轉(zhuǎn)成vuedraggable的話,首先要設(shè)置tag,但是那些el-collapse上的數(shù)據(jù)怎么辦呢?就要通過component-data配置了:

{{ lign }}

export default {

name: "third-party",

display: "Third party",

order: 10,

components: {

draggable

},

data() {

return {

list: [

{

title: "Consistency",

id: 1,

text: [

"Consistent with real life: in line with the process and logic of real life, and comply with languages and habits that the users are used to;",

"Consistent within interface: all elements should be consistent, such as: design style, icons and texts, position of elements, etc."

]

},

{

title: "Feedback",

id: 2,

text: [

"Operation feedback: enable the users to clearly perceive their operations by style updates and interactive effects;",

"Visual feedback: reflect current state by updating or rearranging elements of the page."

]

}

],

activeNames: [1],

collapseComponentData: {

on: {

change: this.inputChanged

},

props: {

value: this.activeNames

}

}

};

},

methods: {

inputChanged(val) {

this.activeNames = val;

}

}

};

上面代碼中的collapseComponentData就是將原來el-collapse上傳遞數(shù)據(jù)的部分抽離出來了,包括事件(on),屬性(prop,attr)的設(shè)置。

group和clone

group一般的用法是用來區(qū)分拖拽組的,group名稱相同的拖拽組可以互相拖放:

{{ element.name }} {{ index }}

{{ element.name }} {{ index }}

互相拖放的一般效果如下:

group屬性還有更詳細的配置,例如:group="{name:'abc',pull:'clone',put:false}"。

put參數(shù)比較簡單,是用來控制別的地方內(nèi)容是否可以拖拽到自己這邊來。如果設(shè)置為false,那么就表示別的地方的內(nèi)容無法拖拽到自己這邊來。

pull參數(shù)控制的是從當前拽走,放在另外一個地方的行為。默認情況下(設(shè)置為true)是你拽到另外一個地方去,當前列表中就會少一個,對方列表多一個。如果設(shè)置為'clone',那么當前列表不會減少,同時對方列表多了一個。

當然你甚至可以配置一個:clone='func',用來控制放入對方列表的內(nèi)容,我們看一個復(fù)雜一點的例子:

{{ element.name }} {{ index }}

{{ element.name }} {{ index }}

export default {

methods: {

clone: function(el) {

return {

name: el.name + " cloned"

};

},

pullFunction() {

return Math.random()*10%2 ? "clone" : true;

},

}

};

上面的代碼中,pull設(shè)置為true還是'clone'是隨機的(pullFunction)。如果設(shè)置的true,那么就是當前少一個,對方多一個;如果是'clone',同時:clone='func',那么就會用調(diào)用你自定義的clone方法,當前不少,對方多一個。

transition-group和animation

vuedraggable中的動畫主要分成兩類,一類是交換過程的動畫:

上圖我們可以看到,拖拽元素每經(jīng)過一個內(nèi)容項,它就會發(fā)生動畫移動的效果,這個主要是通過animation的設(shè)置:

{{ element.name }} {{ index }}

還有一種就是只有交換的雙方才有動畫:

這種和上面的不一樣,這種交換過程中沒有動畫,但是只是最后真正交換的時候才有動畫,這種需要加個class就好了:

{{ element.name }} {{ index }}

.flip-list-move {

transition: transform 0.5s;

}

給transition-group添加一個name屬性ABC,然后增加一個ABC-move的樣式類就好了

總結(jié)

以上是生活随笔為你收集整理的vuedraggable示例_vuedraggable快速入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。