Javascript 如何更改Fabric.js调整大小手柄的默认外观?

Javascript 如何更改Fabric.js调整大小手柄的默认外观?,javascript,customization,fabricjs,Javascript,Customization,Fabricjs,Fabric.js的交互模式非常方便,可以像在矢量绘图程序(如Inkscape)中那样操作对象。我想在我的web应用程序项目中使用这个功能,在这个项目中需要一种拼贴编辑器 默认情况下,选择对象时,边界框和调整大小控制柄以蓝色显示,并且控制柄为蓝色的大空心正方形。我想改变这一点,以符合我的项目的设计 文档中有一个专门的页面,介绍如何在此处执行这种类型的自定义: 使用前面提到的指南,我可以在我的应用程序中获得更好看的选择框。但是这个解决方案是基于每个对象的。使用Shift键执行组选择时,控制柄和边界

Fabric.js的交互模式非常方便,可以像在矢量绘图程序(如Inkscape)中那样操作对象。我想在我的web应用程序项目中使用这个功能,在这个项目中需要一种拼贴编辑器

默认情况下,选择对象时,边界框和调整大小控制柄以蓝色显示,并且控制柄为蓝色的大空心正方形。我想改变这一点,以符合我的项目的设计

文档中有一个专门的页面,介绍如何在此处执行这种类型的自定义:

使用前面提到的指南,我可以在我的应用程序中获得更好看的选择框。但是这个解决方案是基于每个对象的。使用Shift键执行组选择时,控制柄和边界框将恢复为默认的蓝色


如何实现文档中所述的相同级别的自定义,并自动将其应用于整个画布,包括组选择?

您可以在
对象:所选
事件中覆盖该行为。那么比如说,

canvas.on('object:selected',function(e){
     e.target.transparentCorners = false;
     e.target.borderColor = 'green';
     e.target.cornerColor = 'purple';
});

您可以全局覆盖默认对象控件属性,并根据您的首选项进行设置。下面是您的代码的外观:

fabric.Object.prototype.set({
    transparentCorners: false,
    borderColor: '#ff00ff',
    cornerColor: '#ff0000'
});

您可以在代码的开头进行设置。这将覆盖控件的默认样式,并将应用于所有位置。你可以在这里找到一把可以工作的小提琴:

我使用的是fabric版本1.7.19,我试着按原样做,但在我的情况下不起作用

作为替代方案,我提供了以下解决方案:

 fabric.Object.prototype.selectionColor ='rgba(255,119,0,0.3)';
 fabric.Object.prototype.cornerSize = 20;
 fabric.Object.prototype.transparentCorners = false;
 fabric.Object.prototype.cornerColor = '#eee';
我在以下情况下进行了测试:

  • 在文件准备好之前
  • 文件准备好后
  • 点击按钮后
    好的。工作起来很有魅力+1.