Skip to main content

如何使用 Vue 实现画布图形的拖放功能?

要在画布上的任何节点启用拖放功能,只需将 draggable: true 属性传递给组件即可。

当你拖放一个图形时,建议将其位置保存到你的应用存储中。你可以使用 dragstartdragend 事件来实现这一目的。

说明:尝试拖动文本。注意它在被拖动时颜色的变化。

<template>
<v-stage ref="stage" :config="stageSize">
<v-layer ref="layer">
<v-text
@dragstart="handleDragStart"
@dragend="handleDragEnd"
:config="{
text: '可拖动文本',
x: 50,
y: 50,
draggable: true,
fill: isDragging ? 'green' : 'black'
}"
/>
</v-layer>
</v-stage>
</template>

<script>
const width = window.innerWidth;
const height = window.innerHeight;

export default {
data() {
return {
stageSize: {
width: width,
height: height
},
isDragging: false
};
},
methods: {
handleDragStart() {
this.isDragging = true;
},
handleDragEnd() {
this.isDragging = false;
}
}
};
</script>