Skip to main content

深层样式 Konva 变换器

您可以使用 Konva.TransformeranchorStyleFunc 属性对锚点样式进行更深入的控制。

同时,您可以查看 变换器样式 以了解更简单的用例。

import Konva from 'konva';

const width = window.innerWidth;
const height = window.innerHeight;

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

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

const rect = new Konva.Rect({
x: 50,
y: 50,
width: 100,
height: 100,
fill: 'yellow',
stroke: 'black',
draggable: true,
});
layer.add(rect);

const tr = new Konva.Transformer({
nodes: [rect],
anchorStyleFunc: (anchor) => {
// 使所有锚点成为圆形
anchor.cornerRadius(50);
// 使所有锚点变为红色
anchor.fill('red');

    // 使右中锚点更大
    if (anchor.hasName('middle-right')) {
      anchor.scale({ x: 2, y: 2 });
    }
    // 使左上锚点不可见
    if (anchor.hasName('top-left')) {
      anchor.scale({ x: 0, y: 0 });
    }

},
});
layer.add(tr);