javascript - 如何使用fabric js一一选择 Canvas 上的所有对象?

标签 javascript html canvas html5-canvas fabricjs

代码如何使用fabric js一一选择 Canvas 上当前的所有对象。我试图一一列出每个对象的属性,而不知道 Canvas 上有多少对象(如果有的话)。

为了澄清:

这是 https://jsfiddle.net/3bxLmwzk/

var canvas = new fabric.Canvas('canvas');

canvas.add(new fabric.Text('hdgh', { 
    left: 20,
    top: 30, 
    fontFamily: 'Comic Sans MS',
    fontSize: 35
}));

canvas.add(new fabric.Text('foo', { 
  fontFamily: 'Roboto', 
  left: 100, 
  top: 100,
  fontSize: 25
}));

canvas.add(new fabric.Text('f776h', { 
  fontFamily: 'Arial', 
  left: 200, 
  top: 200,
  fontSize: 25
}));

有 3 个对象...有没有办法可以在每个文本对象的控制台日志(文本、fontFamily 和 fontSize)上打印)

1 个对象 - 'hdgh' ; Comic Sans MS ; 35
2 对象 - 'foo' ;机器人; 25
3 对象 - 'f776h' ;宋体; 25

最佳答案

一旦你有一个织物对象,你可以调用fabric.getObjects()获取所有对象。您可以向它传递一个字符串,该字符串可以包含一个类型(如“文本框”或“圆圈”),它只会返回该类型的对象。

获得对象后,您可以按如下方式遍历它们:

let objects = fabric.getObjects(); //return Array<objects>
objects.forEach(object=>{
    //list the attributes for each object
    console.log(object.text, object.fontFamily, object.fontSize);
});

如果没有更好地描述您正在尝试做什么,这就是您可以做的。

关于javascript - 如何使用fabric js一一选择 Canvas 上的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42987783/

相关文章:

JavaScript 名称与 ID

javascript - 如何通过 jQuery 的 AJAX 请求发送 token

php - jquery伪造一个ajax请求

Javascript Canvas如何放大图像

java - 使用 onDraw android 在 View 中绘制多个对象

javascript - 来自 Post 请求的 PNG 加载到 Canvas 中

javascript - Google Maps API v3 Firefox 问题

javascript - 为什么我的 css 样式没有改变?

javascript - 如何使用jquery将ajax数据加载到div中?

javascript - AngularJS:从嵌套的 ng-repeat 表单中获取值