javascript - KonvaJS:缩放整个舞台时如何防止某些形状缩放?

标签 javascript konvajs

我有一个简单的 KonvaJS 图像缩放/平移示例,现在我在鼠标单击时添加 anchor ,但问题是当舞台缩放缩放时 anchor 也会变大。我想防止 anchor 在舞台缩放时缩放。

理想情况下,我会寻找某种方式在舞台缩放时进行聆听并减小 anchor 的大小,以便它们保持相同的大小而不会对整个规模使用react。

这是我已经完成的示例:

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();
    });

https://codepen.io/aurimasniekis/pen/yZQjrN

最佳答案

每次缩放舞台时,您只需调整所有 anchor 的大小即可。你可以这样做:

stage.find('Circle').setAttrs({
  scaleX: 1 / stage.scaleX(),
  scaleY: 1 / stage.scaleY()
});

https://codepen.io/lavrton/pen/pGQQqZ

关于javascript - KonvaJS:缩放整个舞台时如何防止某些形状缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726049/

相关文章:

javascript - 如何在 Canvas 中制作选择框以选择它接触的任何对象而不仅仅是它所包含的对象?

javascript - KonvaJS:从中心缩放图像

javascript - jQuery.append() 在与转换一起使用时出现异步

javascript - 针对数字、字母或其他组的关键事件过滤

javascript - JS vs JSON 用于 Node js 中的配置

HTML5 Canvas 叠加图像

javascript - 如何根据表中列的值禁用下拉菜单和按钮

javascript - 为什么将元素的 zindex 设置回 0 不会将其移到 IE9 中的其他对象后面?

javascript - Canvas Infinite Scroll 映射对象位置

javascript - Konva 元素位于视口(viewport)之外