react-konva - Konva React - 悬停的 DOM 元素的碰撞检测
问题描述
我正在将 React 与 Konva 一起使用。我将一个 DOM 元素拖到画布上并创建一个 Konva 节点,就像文档中的 lion 演示一样,除了我从放置的元素创建一个圆形形状。
我希望在用户将 DOM 元素悬停在画布上之前进行一些验证。它应该将画布上现有的 Circle 形状与悬停的 DOM 元素进行比较(它将替换它悬停在上面的 Circle),这样它要么替换现有的形状(如果有的话),或者直接丢弃它(如果没有的话)。我认为碰撞检测可能是解决这个问题的好方法?
- 当用户开始拖动时,我是否需要将 DOM 元素“转换”为 Konva 节点以进行验证?
- 如果是这样,我如何“转移”悬停的事件?我是否应该从 DOM 元素的 onDragStart 创建 Konva 节点并以某种方式将其传输到画布,或者我该怎么做?
解决方案
You can use stage.getIntersection(stage.getPonterPosition())
on drop to check if you have a shape under mouse.
Based on that, you can replace it or create a new one (if there is no shape).
推荐阅读
- asp.net-core - 如何在 Openshift 容器中设置 ASP.NET Core 端口
- arrays - 使用反应钩子在 REACTJS 中使用数组填充动态下拉列表的步骤
- python - 为“__hpKey”抓取网站,然后在 python 中使用 requests 和 beautifulsoup 登录
- javascript - React Native - TouchableOpacity 不适用于具有位置的容器:绝对
- vb.net - 以管理员身份运行 cmd 但设置适用于登录用户
- c# - System.OperationCanceledException 在 Xamarin 中的 Azure 事件中心的每个事件上引发
- python - 如何使用字数和列名注释堆积条形图
- git - git revert 没有恢复任何东西
- excel - 在 Microsoft Excel 中将字符串转换为整数
- django - Django POST 请求 Ajax 无法在服务器端获取数据