You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 19项目中Fabric.js 6.7.1无法在Canvas上生效的问题求助

Angular 19项目中Fabric.js 6.7.1无法在Canvas上生效的问题求助

大家好,我在Angular 19项目里用Fabric.js 6.7.1操作HTML5 Canvas时遇到了棘手的问题——代码完全没生效!设置的Canvas背景色没显示,添加的文本也看不到,就好像这段逻辑根本没执行一样。

我是在ngAfterViewInit钩子中初始化Fabric的,具体代码如下:

ngAfterViewInit() {
  this.log.debug(`[FractalComponent] ngAfterViewInit`)
  const width = (this.fractalCanvasContainer.nativeElement as HTMLDivElement).clientWidth;
  const height = (this.fractalCanvasContainer.nativeElement as HTMLDivElement).clientHeight;
  console.log(`[FractalComponent] fractalCanvas ${JSON.stringify(this.fractalCanvas)}`)
  
  this.canvas = new Canvas(this.fractalCanvas.nativeElement, {
    width: width,
    height: height,
    backgroundColor: '#000000',
    selection: false,
    preserveObjectStacking: true,
    isDrawingMode: true,
  });

  const text = new FabricText('Fabric.JS', {
    left: 0,
    top: 0,
    cornerStrokeColor: 'blue',
    cornerColor: 'lightblue',
    cornerStyle: 'circle',
    padding: 10,
    transparentCorners: false,
    cornerDashArray: [2, 2],
    borderColor: 'orange',
    borderDashArray: [3, 1, 3],
    borderScaleFactor: 2,
  });

  const text1 = new FabricText('Hello Fabric', {
    left: 50,
    top: 30,
    fontSize: 24,
    fill: '#336699'
  });

  this.canvas.add(text1);
  this.canvas.add(text);
  this.canvas.centerObject(text);
  this.canvas.setActiveObject(text);
  
  console.log(`[FractalComponent] ${JSON.stringify(this.canvas)}`)
}

这段代码里我设置了Canvas的黑色背景,还添加了两段文本,甚至尝试居中并激活其中一段文本,但页面上完全看不到这些效果——背景色没出来,文本也没显示。

我的环境信息:

  • Fabric.js 版本:6.7.1
  • Angular 版本:19.2.0

编辑补充:我去掉了CSS里设置的背景样式后,显示情况有了变化,但依然不符合预期。点击Canvas之后,在Chromium里显示正常了,但Firefox里还是有问题。我的浏览器版本:

  • Firefox:141.0.3(64位)
  • Chromium:Version 139.0.7258.66(官方版本,Linux Mint 64位)

我准备了一个最小化的测试项目用来复现这个问题,希望大家能帮我看看哪里出了问题,为什么Fabric的配置完全不生效?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:14:34