问题标签 [react-konva]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
119 浏览

reactjs - 组内垂直滚动

我正在使用可拖动节点的画布。一些节点包含我在画布上显示的项目列表。我目前正在渲染所有项目。我当前渲染的结构如下所示:

我目前面临的问题是当 Rect 的列表变得很长时,我的画布非常不清楚。每当所有 Rect 组合的总高度大于一定数量时,我想添加一个垂直滚动。有什么办法可以做到这一点?

0 投票
1 回答
661 浏览

canvas - react-konva:禁用画布元素 devicePixelRatio 比例

我正在使用 react-konva

当我渲染一个<Stage />宽度为:750 的元素时,它将渲染一个<canvas />宽度为 750 * devicePixelRatio的元素

将呈现(在 iPhone 7 中)

如何禁用此行为?

0 投票
1 回答
298 浏览

konvajs - 关闭 Konvajs 警告

当有超过五层时,Konva 会向控制台输出如下警告:

“舞台有n层。建议的最大层数为3-5。在舞台中添加更多层可能会降低性能。重新考虑你的树结构,你可以使用Konva.Group。”

这很好,但如果一切正常并且没有性能问题,我想关闭警告。

有没有办法阻止 Konva lib 输出某些警告?

0 投票
1 回答
308 浏览

javascript - 如何通过 event.target 区分同一层中的 react konva 元素?

再会,

我正在尝试控制 mouseleave 事件。<Drawing>目标是在元素碰到 a 时继续该元素的笔划,<Label>并在它超出<Stage>. <Drawing>当通过 setState() 触发 mouseleave 事件时,mouseLeaveHandler() on会停止描边。问题是当笔划通过<Label>导致它停止时也会触发 mouseleave 事件。

我尝试记录事件对象,并且 event.currentTarget 属性似乎为我提供了区分 mouseleave 与<Label>Konva.Image 以及 mouseleave 与<Stage>Konva.Stage 所需的信息。但是,由于 currentTarget 属性是只读的,我不能以编程方式使用它。目标属性没有用,因为它会显示为同一个类 Konva.Image。

我的问题是,如何通过事件对象将 konva<Label>与a 区分开来?<Stage>我可以向事件目标添加其他属性以使一个与另一个不同吗?

到目前为止我所拥有的:

绘图.js

第一个事件是当中风击中<Label>. 其次是它离开的时候<Stage>。如您所见, currentTarget 比 target 属性有更多有用的信息

日志

任何帮助表示赞赏。谢谢!

0 投票
2 回答
562 浏览

javascript - 将 Konva 变换控件设置到画布顶部

我正在尝试转换位于另一个图层后面的图像,该图层包含 png (模板)。我想转换该图层下方的图像,但将其保留在原处,以便将上面的图层保留为模板。

是否可以在所有内容的顶部显示转换控件?

显示 png 如何覆盖控件和下方的可变形图像

0 投票
1 回答
676 浏览

javascript - 在 react-konva 中转换后矩形无法正确重新渲染

我一直在我的一个项目中使用这个(https://github.com/oasis10702/konva-simple-example)代码,一切正常。但是,将 react 和 react-konva 更新到最新版本会对我造成一些意外行为。当使用转换器调整矩形大小时,它正在缩放边框笔划,见图。scaleX 和 scaleY 似乎都没有重置,这使得每次我移动矩形时它都会执行缩放。

长方形

我是 React 和 Konva 的新手,想知道在新版本中是否有一些逻辑发生了变化,我应该考虑缓解这种情况。

尝试在下面的沙箱中调整矩形的大小。 https://codesandbox.io/embed/vyv106x295 如果我将依赖项更新到最新版本,行为就会改变。

我试过用https://github.com/konvajs/konva/issues/401解决它,但在这个版本中似乎没有帮助。

0 投票
1 回答
1144 浏览

konvajs - 如何使用剪辑功能在 konva 组上添加圆角半径?

我正在努力使用自定义剪辑功能在组形状中应用角半径(在所有边上)。

这是我的代码框:

https://codesandbox.io/s/w28nrrj885

0 投票
1 回答
664 浏览

reactjs - 如何为使用 react-konva 渲染的画布元素设置 HTML-id

我在一个项目中使用 react-konva 来渲染 HTML5-canvas 元素:

(...)


现在我希望 HTML 输出有一个 id (myId),如:


我只能找到konva-id但没有设置 HTML-id。

0 投票
0 回答
100 浏览

javascript - 如何正确显示动态旋转的角度?

提前感谢您关注我的问题。

我正在使用一个名为react-konvacanvas库。我的任务是建立两条线之间的角度并显示它。现在它可以工作了,不是很完美,但仍然......但我无法解决显示角度的问题。

角度显示

在上面的示例中,我可以向任何方向移动点。我必须计算文本旋转。

这是我的代码

我需要为文本旋转一些容器,但不旋转文本。所以 112 应该显示在相同的位置,但它的文本不应该被旋转。

希望我解释可用。

0 投票
3 回答
1080 浏览

javascript - 是否可以使用 Konva.js 实现油漆桶?

我已经设法使用konva实现了多种工具,这些工具允许用户绘制不同的形状和图案,例如:矩形、圆形、箭头、自由绘制、橡皮擦等。C。

我正在尝试实现类似:使用油漆桶,用户应该能够填充形状的不同部分,如果在该形状上绘制其他形状或图案。

也许这个用例有助于更好地理解我的问题:

  1. 用户画一个圆圈。
  2. 之后,他在那个圆圈上画线,因此将被分成多个区域。
  3. 用户现在使用油漆桶并尝试仅填充该圆圈的区域。

我想知道是否可以使用 konva 来实现此功能。

到目前为止,我只能填充整个形状,类似于this

更新

为上述用例添加了图像。

1 & 2. 用户在上面画了一个圆圈和线条: 在此处输入图像描述

  1. 使用油漆桶用户可以填充该圆圈的某些区域: 在此处输入图像描述

任何反馈都将受到欢迎。