跳到主要内容

HTML5 Canvas 拖放组教程

如需使用 Konva 拖放组,可以在创建组时将配置对象的 draggable 属性 设置为 true,也可以使用 draggable() 方法。

注意:拖动组不会更改任何子节点的 xy 属性。更改的是组本身的属性。

import Konva from 'konva';

const stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight,
});

const layer = new Konva.Layer();
stage.add(layer);

const group = new Konva.Group({
draggable: true,
});
layer.add(group);

const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple'];

for (let i = 0; i < 6; i++) {
const box = new Konva.Rect({
x: i * 30 + 10,
y: i * 18 + 40,
width: 100,
height: 50,
name: colors[i],
fill: colors[i],
stroke: 'black',
strokeWidth: 4,
});
group.add(box);
}

group.on('mouseover', function () {
document.body.style.cursor = 'move';
});
group.on('mouseout', function () {
document.body.style.cursor = 'default';
});