javascript - 我需要调整 Fabric js 中所选项目的大小

标签 javascript fabricjs

我无法调整这些项目的大小。 set 函数不起作用,无法识别对象集合。

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas))

canvas.renderAll();

//select all items first (this works)
var objs = canvas.getObjects().map(function(o) {  
     return o.set('active', true);
});

//deactivate some items i dont want to resize (this works)
canvas.item(0).set('active', false);
canvas.item(1).set('active', false);
canvas.item(2).set('active', false);
canvas.item(3).set('active', false);
canvas.item(4).set('active', false);

canvas.renderAll();
//the problem starts here 
var o = canvas.getActiveGroup();
o.set({width:100, height:100});

最佳答案

这是一个正在运行的 JSFiddle,http://jsfiddle.net/rekrah/pnpc3j3r/ .

canvas.loadFromJSON(json,canvas.renderAll.bind(canvas))

canvas.renderAll();

//select all items first (this works)
var objs = canvas.getObjects().map(function(o) {
  return o.set('active', true);
});
canvas.renderAll();

//deactivate some items i dont want to resize (this works)
canvas.item(0).set('active', false);
canvas.item(1).set('active', false);
canvas.item(2).set('active', false);
canvas.item(3).set('active', false);
canvas.item(4).set('active', false);

canvas.renderAll();
//this is where the problem goes away 
canvas.getObjects().map(function(o) {
  return (o.active ? o.set({
    width: 100,
    height: 100
  }).setCoords() : o);
});
canvas.renderAll();

set 函数不起作用的原因是对象未定义,您没有事件的“组” - 您只有 active 属性设置为 true 的对象。

关于javascript - 我需要调整 Fabric js 中所选项目的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307124/

相关文章:

javascript - 在 Fabric.js 中获取被点击对象的当前光标位置

fabricjs - 如何将fabric js设置为仅查看?

javascript - Fabric.js 对象在以编程方式更改属性后消失

javascript - 使用来自 node_modules 的 SVG

javascript - 为什么 chromecast api 无法在 chrome 扩展中加载?

javascript - 防止 Rickshaw/D3 显示高于给定缩放级别的 x 轴标签

javascript - "this"不返回选择器

javascript - js中的CAC(Common Access Card)读卡器

javascript - Fabric getPointer 方法在 Firefox 中不起作用

javascript - 如何通过 Fabric.js 仅单击实际内容来选择对象