2012-02-27 96 views
2

我使用FabricJS创建应用程序。我发现滚动父div /容器会将对象的可选区域向右移动,与滚动量直接相关。因此,如果我有一个1200x600的画布和一个600x600的容器div,并且我在该画布的400,120处添加了一个矩形区域;当我滚动200px时,我无法点击矩形选择它。相反,我必须将鼠标移动到600,120(空白空间)以获得交叉条并选择矩形。FabricJS Canvas,滚动父容器移动子区域

不知道这是已知的还是有解决方法 - 但我会很感激任何可能的帮助。

回答

2

您必须修改FabricJs代码才能使其工作。 问题出在getPointer函数中,如果您在all.js中搜索它,您会注意到kangax中的“此方法需要修复”注释。

一种解决方法可以

function getPointer(event) { 
    // TODO (kangax): this method needs fixing 
    return { x: pointerX(event) + document.getElementById("container").scrollLeft, y: pointerY(event) + document.getElementById("container").scrollTop }; 
} 

其中“集装箱”是你的画布包装DIV来代替这一功能。这不是很好,因为你必须把确切的ID,但它的作品。

希望这会有所帮助。

+0

工作很好,谢谢! – 2013-11-08 20:43:18