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

Javascript 如何通过Fabric.js仅单击实际内容来选择对象,javascript,html,fabricjs,Javascript,Html,Fabricjs,我想通过单击实际内容来选择对象。因此,我设置了perPixelTargetFind=true,并遵循引言中的段落: 默认情况下,画布上的所有Fabric对象都可以通过边界框进行拖动。但是,如果需要不同的行为-仅按对象的实际内容单击/拖动对象,则可以对对象使用“perPixelTargetFind”属性。只需将其设置为true即可获得所需的行为 通过这样做,我可以按实际内容拖动对象,但仍然可以通过单击边界区域来选择对象 是否可以仅按对象的实际内容单击对象? for(变量i=0,len=15;i

我想通过单击实际内容来选择对象。因此,我设置了
perPixelTargetFind=true
,并遵循引言中的段落:

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

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

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

for(变量i=0,len=15;i

基本上,您指定的perPixelTargetFind为真,(hasControls&hasBorders)为假。

谢谢您的回答。这样,就不会有边界区域。但旋转和缩放等控件被禁用。我仍然需要这些功能。是否可能只有在单击对象内容时才会显示边界框?正如您在本例中看到的,边界框仅在单击时显示。它默认在那里。如果我的回答对你有帮助,一定要接受并投赞成票。非常感谢。这几乎解决了我的问题但在您答案中的示例中,属性“selection”设置为“false”。如果将“selection”设置为“true”,则如果单击不包含实际对象内容的区域,将显示边界框。我需要“选择”为“真”,以便可以同时选择多个对象。是否可以将“选择”设置为“真”,并且只有在单击实际对象内容时才会显示边界框?
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);
    });
}