VUE 使用 HTML5原生拖放(draggable)
在Vue中使用HTML5原生拖放功能,你可以通过绑定draggable
属性到元素上,并监听相关的事件来实现拖放功能。以下是一个简单的例子:
<template>
<div>
<div
v-for="(item, index) in items"
:key="index"
draggable="true"
@dragstart="dragStart(index)"
@dragover.prevent
@drop="dragDrop(index, $event)"
style="margin: 10px; cursor: move; user-select: none;"
>
{{ item }}
</div>
</div>
</template>
<script>
export default {
data() {
return {
items: ['Item 1', 'Item 2', 'Item 3'],
draggedIndex: null,
};
},
methods: {
dragStart(index) {
this.draggedIndex = index;
},
dragDrop(index, e) {
const draggedItem = this.items.splice(this.draggedIndex, 1)[0];
this.items.splice(index, 0, draggedItem);
},
},
};
</script>
在这个例子中,我们有一个包含三个项的列表items
。每个项通过draggable="true"
来标记为可拖动。我们使用dragstart
事件来记录被拖动项的索引,并在dragover
事件上调用event.preventDefault()
来允许放置。在drop
事件中,我们移动被拖动的项到新位置。
评论已关闭