Gwt FabricJS点击事件
我正在Gwt FabricJS点击事件,gwt,canvas,fabricjs,Gwt,Canvas,Fabricjs,我正在FabricJScanvas库之上构建一个图表库。到目前为止,一切正常,如图所示: 但是,我已经开始实现单击事件,并且遇到了一个问题。由于某些原因,单击事件不能完全工作-它在某些区域工作,而在某些区域不工作。例如,对于底部打印区域(,其中包含),单击事件工作非常尴尬:当我单击绿色区域时,它表示我已单击了紫色区域,而蓝色区域的前100多个像素未发出单击事件:(.另一方面,顶部打印区域工作正常 我已经完全阅读了关于FabricJS的全部文档,并意识到它的缺陷,但不知何故,我不明白为什么会发生
FabricJS
canvas库之上构建一个图表库。到目前为止,一切正常,如图所示:
但是,我已经开始实现单击事件,并且遇到了一个问题。由于某些原因,单击事件不能完全工作-它在某些区域工作,而在某些区域不工作。例如,对于底部打印区域(
,其中包含
),单击事件工作非常尴尬:当我单击绿色区域时,它表示我已单击了紫色区域,而蓝色区域的前100多个像素未发出单击事件:(.另一方面,顶部打印区域工作正常
我已经完全阅读了关于FabricJS
的全部文档,并意识到它的缺陷,但不知何故,我不明白为什么会发生这种情况。我看到人们调用path.setCoord()
来刷新路径坐标,但这没有帮助
还有一件事,由于我正在编写GWT
模块,我需要在JS
中编写JSNI
包装器,但我相信我做得是正确的
我是否忽略了有关FabricJS
的一些内容?
更新:
生成的HTML:
边界框-下部打印区域中的蓝色区域
上蓝色区域上有完全相同的边界框:-/使用canvas.calcOffset()
重新计算画布元素的正确位置。不看实际示例很难判断。这些形状的边界区域是什么?这是对结构中的事件作出反应的区域。此外,它是setCoords
而不是setCoords
(不确定是在此处还是在代码中键入)@kangax感谢您的回答。这是一个输入错误-我的意思是setCoords()
。我将尝试隔离蓝色区域的边界框数据。开始怀疑“绘图区域”的相对位置我用生成的HTML更新了这个问题:两个
都是相对定位的,而
都是绝对定位的…我隔离了边界框,考虑到下绘图区域与
是分开的,这些值似乎是预期的,对吗?所以看起来像是你们彼此都喝咖啡,对吗?