2011-11-27 122 views
4

我有,我想补充的编辑fabric.js HTML5画布的顶轮罩的一个问题。 类似的问题在这篇文章中描述:添加遮罩层

Creating an Image Mask with HTML 5 Canvas

我的问题是,当我在fabric.js画布上添加此层,然后我的画布是不可编辑的这个透明的圈子里面了。这意味着顶部元素(蒙版)捕获点击/拖动事件,但我想要移动此蒙版元素下的项目。寻找想法,如何解决这个问题。

回答

7

可以利用在布口罩内置支持。

下面是用200的半径在创建一个100/100圆形掩蔽的例子:

var canvas = new fabric.Canvas('...'); 
// ... 
canvas.clipTo = function (ctx) { 
    ctx.arc(100, 100, 200, 0, Math.PI*2, true); 
}; 
+0

这正是我一直在寻找!非常感谢! – ainla

+0

关于更多问题,我想指出。如果我尝试剪裁透明的PNG蒙版(更复杂的形状然后圈),那么画布对象是可见的,但只有当我使用组选择。否则,透明遮罩仍然“隐藏”它下面的对象。 – ainla

+0

有趣。如果你用简单的测试用例在github上提交bug(https://github.com/kangax/fabric.js/issues),我会研究它。 – kangax