如何通过Fabric.js单击实际内容来选择对象

时间:2015-03-23 04:39:19

标签: javascript html fabricjs

我想通过单击实际内容来选择对象。所以我设置perPixelTargetFind=true并按照引言中的段落进行操作:

  

"默认情况下,画布上的所有Fabric对象都可以通过边界框拖动。但是,如果您想要不同的行为 - 仅按实际内容单击/拖动对象,则可以使用" perPixelTargetFind"对象上的属性。只需将其设置为true即可获得所需的行为。"

通过这样做,我可以按实际内容拖动对象,但仍然可以通过单击边界区域来选择对象。

是否可以仅按实际内容点击对象?

1 个答案:

答案 0 :(得分:3)

Is this what you wanted?

for (var i = 0, len = 15; i < len; i++) {
    fabric.Image.fromURL('../assets/ladybug.png', function(img) {
        img.set({
            left: fabric.util.getRandomInt(0, 600),
            top: fabric.util.getRandomInt(0, 500),
            angle: fabric.util.getRandomInt(0, 90)
        });

        img.perPixelTargetFind = true;
        img.targetFindTolerance = 4;
        img.hasControls = img.hasBorders = false;

        img.scale(fabric.util.getRandomInt(50, 100) / 100);

        canvas.add(img);
    });
}

基本上,您指定 perPixelTargetFind 为true,而( hasControls &amp; hasBorders )为false。