---------pc:
<div
class="imgRow"
draggable="true"
@dragstart="handleDragStart($event, item)"
@dragover.prevent="handleDragOver($event, item)"
@dragenter="handleDragEnter($event, item)"
@dragend="handleDragEnd($event, item)"
v-for="(item, index) in imgList"
:key="item.name"
>
// 拖动图片
handleDragStart(e, items) {
this.dragging = items
},
handleDragEnd(e, items) {
this.dragging = null
},
handleDragOver(e) {
e.dataTransfer.dropEffect = "move"
},
handleDragEnter(e, items) {
e.dataTransfer.effectAllowed = "move"
if (items == this.dragging) return
const newItems = [...this.imgList]
const src = newItems.indexOf(this.dragging)
const dst = newItems.indexOf(items)
newItems.splice(dst, 0, ...newItems.splice(src, 1))
this.imgList = newItems
},
------------------移动端
------------------文档:https://www.itxst.com/vue-draggable/zyrqie7f.html
//导入draggable组件
import Draggable from "vuedraggable"
components: { Draggable },
<Draggable
class="moveDraggable"
v-model="imgList"
group="itxst"
@start="start"
animation="300"
>
<transition-group>
<div class="imgRow" v-for="(item, index) in imgList" :key="item.name">
<img
:src="require(`@/assets/img/interact/${item.url}.png`)"
alt=""
@click="lookImg"
/>
<!-- 删除 -->
<div class="delImg" @click="delImg(item.name)"></div>
<!-- 封面 -->
<div class="imgCover" v-show="index === 0">封面</div>
</div>
</transition-group>
</Draggable>