【问题标题】:FabricJS click eventFabricJS 点击事件
【发布时间】:2014-01-24 19:27:20
【问题描述】:

我正在FabricJS 画布库之上构建一个图表库。到目前为止,一切都运行良好,如图所示:

但是,我已经开始实现click 事件并且遇到了问题。由于某种原因,点击事件无法完全发挥作用——它在某些地区有效,而在另一些地区则无效。例如,对于底部绘图区域(<div><canvas> 内),单击事件非常尴尬:当我单击绿色区域时,它说我单击了紫色区域,而蓝色区域的前 100 个奇数像素没有发出点击事件:(。另一方面,顶部绘图区域完美运行。

我已经完整阅读了FabricJS 上的整个文档,并且意识到它的缺陷,但我不知何故无法理解为什么会发生这种情况。我看到人们调用path.setCoord() 来刷新路径坐标,但这并没有帮助。

还有一件事,因为我正在编写 GWT 模块,所以我需要在 JS 中编写 JSNI 包装器,但我相信我做得对。

我是否可能忽略了FabricJS 的某些内容?

更新:

生成的 HTML:

边界框 - 下部绘图区域中的蓝色区域

完全相同的边界框位于上方的蓝色区域:-/

【问题讨论】:

  • 不看实际例子就很难说。这些形状的边界区域是多少?这是对 Fabric 中的事件做出反应的区域。
  • 另外,它是setCoords 而不是setCoord(不确定是这里还是代码中的错字)
  • @kangax 感谢您的回答。那是一个错字——我的意思是setCoords()。我将尝试隔离蓝色区域的边界框数据。开始怀疑“情节区域”的相对定位与这个烂摊子有关。我已经用生成的 HTML 更新了问题:<DIV>s 都相对定位,而<CANVAS>es 具有绝对定位...
  • 我隔离了边界框,并且考虑到较低的绘图区域是分开的 <DIV><CANVAS>,这些值似乎是预期的,对吧?
  • 看起来画布相互重叠,对吧?

标签: gwt canvas fabricjs


【解决方案1】:

使用canvas.calcOffset() 重新计算画布元素的正确位置。

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 2016-10-11
    • 2023-03-27
    • 1970-01-01
    • 2019-12-11
    • 2012-12-07
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多