我有一个简单的KonvaJS图像缩放/平移示例,现在我在鼠标点击时添加锚点,但问题是当舞台缩放缩放时,锚点也会变大。我希望在舞台缩放时防止锚点缩放。
理想情况下,我会寻找一些方法来监听舞台缩放时减少锚的大小,以便它们保持相同的大小而不会对整个规模做出反应。
这是我已经做过的一个例子:
stage.on('click', (e) => {
const transform = layer.getAbsoluteTransform().copy();
transform.invert();
const pos = stage.getPointerPosition();
const anchorPos = transform.point(pos);
const anchor = new Konva.Circle({
x: anchorPos.x,
y: anchorPos.y,
radius: 20,
stroke: '#666',
fill: '#ddd',
strokeWidth: 2,
draggable: true
});
layer.add(anchor);
layer.draw();
});
每次扩展阶段时,您只需要调整所有锚点的大小。你可以这样做:
stage.find('Circle').setAttrs({
scaleX: 1 / stage.scaleX(),
scaleY: 1 / stage.scaleY()
});