【问题标题】:FabricJS Update Bounding BoxFabricJS 更新边界框
【发布时间】:2020-04-08 15:51:42
【问题描述】:

我无法在平移后更新画布的边界框。我尝试requestRenderAll 并重置每个对象的坐标,但边界框保持在同一位置。

我应该调用其他函数吗?

我尝试过的事情:

    if (!pausePanning && e.self.x && e.self.y && e.e.type) {
      currentX = e.self.x;
      currentY = e.self.y;
      xChange = currentX - panX;
      yChange = currentY - panY;

      if( (Math.abs(xChange) <= 100) &&
          (Math.abs(yChange) <= 100) ) {
        var delta = new fabric.Point(xChange, yChange);
        canvas.relativePan(delta);
      }

      panX = e.self.x;
      panY = e.self.y;

      // attempting to redraw bounding
      canvas.getObjects().forEach(function(o) {
        o.setCoords();
      });


      // this also doesn't work
      canvas.requestRenderAll();
    }
  }

【问题讨论】:

    标签: fabricjs


    【解决方案1】:

    结束了filing a ticket 并收到了回复;问题是您需要在平移或缩放后选择项目时指定更新的画布。

    如果您的画布被命名为canvas 变量的示例:

    var sel = new fabric.ActiveSelection(selection, { canvas: canvas });
    canvas.setActiveObject(sel).requestRenderAll();
    

    还有一个jsfiddle 显示带有更新选择的缩放/平移。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2013-09-25
      • 1970-01-01
      相关资源
      最近更新 更多