问题标签 [konvajs-reactjs]

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 投票
3 回答
1087 浏览

canvas - 无法使用 Konva 将 PDF 图像作为图像对象加载到 HTML5 画布中

如果源是 PDF,我无法在画布中加载 Konva Image 对象。

没有抛出错误,但画布在图像应该是空白的地方。是否有任何已知的解决方法?欢迎任何建议。

0 投票
2 回答
748 浏览

konvajs - React Konva 在拖动时更改 zIndex

嘿,所以我有一点用 React konva 编写的拖放游戏。我的可拖动部分看起来像这样(为方便起见进行了简化

我希望当前被拖动的部分是最高层(最高 zIndex)上的部分。

问题是 React-Konva 不支持 zIndexing,并且似乎希望您根据渲染方法中的顺序强制执行 zIndexing。

我的解决方案是用 currentDragIndex 更新 reactState

然后我尝试在渲染方法中重新排序。但是,这会导致拖动事件被中断。

有人对此有很好的解决方案吗?

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 投票
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 回答
771 浏览

konvajs - 如何用 react-konva 制作圆角垂直线?

我需要用 react-konva 制作圆角垂直线,使用现有的 API 可以实现吗?如果是,如何?

我对 Line 类使用了 bezier API,效果很好。不知何故,现在我需要将贝塞尔曲线修改为圆形垂直线。

像这样:圆角垂直线

0 投票
1 回答
664 浏览

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

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

(...)


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


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

0 投票
1 回答
352 浏览

konvajs - 使用 arcTo 的 React-Konva 自定义形状渲染不正确

我正在使用KonvaKonva-React来绘制一个简单的自定义形状,该形状由两条由弧连接的垂直线组成。

简单的自定义形状

自定义形状的 API 文档指出我们可以使用渲染器访问 HTML5 Canvas 上下文。因此,我创建了一个绘图函数,该函数使用 Konva.Canvas 渲染器来显示我的形状,但是该形状没有按预期渲染。请参阅:https ://codesandbox.io/s/react-konva-custom-shape-demo-hs3y4 。

在此处输入图像描述

这在使用 HTML5 Canvas https://codepen.io/anon/pen/voYNLR时正确呈现。

经过几次排列(使用打字稿)后,我设法生成了一条错误消息,突出显示了 arcTo 命令的问题:

但是https://www.w3.org/TR/2dcontext/特别指出 arcTo 有 5 个参数:

在进一步调查 Context.d.ts 状态:

nodemodules\konva\lib\Context.js 中 arcTo 的定义有我认为是一个错误:

请注意,arcTo 原型的实现使用 _context.arc 代替 arcTo。如果这是预期的行为,我将不胜感激对这些发现的任何验证,或一些背景。

我在这里创建了一个带有修改的 arcTo 签名的叉子:https ://github.com/piriej/konva (警告:正在进行中)

亲切的问候杰夫

0 投票
1 回答
236 浏览

javascript - 使用 KonvaJS 删除应用的过滤器

我正在对 Konva.Image 应用过滤器,但找不到任何方法来删除这些过滤器并返回到原始图像。

我怎样才能做到这一点?

0 投票
1 回答
160 浏览

javascript - KonvaJS 过滤器值的等价物

我正在尝试在https://www.cssfilters.co/上找到与 CSS 过滤器等效的 KonvaJS 过滤器值

例如,如何使用 KonvaJS 应用“1977”过滤器。我尝试了很多选择,但每次都得到不同的结果。是否可以为棕褐色或灰度提供值?

我正在使用这样的过滤器(具有不同的值):

0 投票
1 回答
506 浏览

javascript - 将元素设置为画布中所有图层的顶部

我正在使用 KonvaJS 创建一个可以使用“连接”连接“节点”的画布。我创建了 2 Layers、 1NodeLayer和 1 ConnectionLayer。我总是想NodeLayerConnectionLayer. 因此它们呈现如下:

这确保节点始终呈现在连接之上。我正在尝试在我的连接上添加一个工具提示,但是因为它位于工具提示NodeLayer的顶部,所以connectionLayer当它位于节点后面时不会显示。

connectionLayer有没有办法在不改变图层顺序的情况下在节点顶部呈现工具提示?