【问题标题】:canvas not rendering shape after adding new shape添加新形状后画布不渲染形状
【发布时间】:2020-01-15 22:58:03
【问题描述】:

fabric.js 有问题。我可以使用fabric.version,但是在 new fabric.Rect{top : 100,left : 100,width : 120,height : 30, fill : 'red'} 并使用 canvas .add 之后,矩形不显示但 mouseEvent 是好的。 我的 fabric.js 版本是 3.4.0

@angular/core": "~7.2.0","fabric": "^3.4.0"

  ngOnInit() {
    let canva1 = new fabric.Canvas('myCanvas');
    console.log(fabric.version);
    let rect = new fabric.Rect({
      top : 100,
      left : 100,
      width : 120,
      height : 30,
      fill : 'red'
  });
  canva1.add(rect);
  }

我希望画布上有一个矩形显示,但没有矩形显示

【问题讨论】:

标签: javascript angular canvas fabricjs


【解决方案1】:

您的画布元素上有style="background: white",它只是与背景融为一体。

https://github.com/zhangManGod/canvas/blob/master/src/app/right/right.component.html#L3

【讨论】:

    【解决方案2】:

    除非您使用renderOnAddRemove = true (http://fabricjs.com/docs/fabric.Canvas.html#renderOnAddRemove) 创建了画布,否则您需要在添加或删除项目后在画布上调用requestRenderAll

    (http://fabricjs.com/docs/fabric.Canvas.html#requestRenderAll)

    ngOnInit() 
    {
        let canva1 = new fabric.Canvas('myCanvas');
        console.log(fabric.version);
        let rect = new fabric.Rect(
        {
            top : 100,
            left : 100,
            width : 120,
            height : 30,
            fill : 'red'
        });
        canva1.add(rect);
        canva1.requestRenderAll()
    }
    

    【讨论】:

    • 你是对的,但我发现它是因为我在 的 html 中设置了背景谢谢。
    • 还要注意renderOnAddRemove默认是true
    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多