如何在fabric.js中调整组中某些对象的大小?

时间:2019-06-28 17:19:35

标签: javascript fabricjs

我有一组两个对象,我想要的是在调整组的大小时,其中一个对象不会改变大小,而位置会改变。

我已经搜索了文档,但是找不到解决此问题的参考。

var r = 15;
var rect = new fabric.Rect({
    left: 50,
    top: 50,
    fill: 'blue',
    width: 100,
    height: 100

});
var linkBtn = new fabric.Circle({
    left: 50 + rect.width / 2 - r,
    top: 50 - r,
    strokeWidth: 1,
    radius: r,
    fill: '#fff',
    stroke: '#666'
});
var g = new fabric.Group([rect, linkBtn]);
g.hasRotatingPoint = false;
canvas.add(g);

当我拉伸组的宽度时,对象“ linkBtn”会像椭圆形一样变形,与高度相同。我希望在更改大小时,对象“ linkBtn”始终是相同的大小,并且始终是对象“ rect”的宽度的一半。

1 个答案:

答案 0 :(得分:0)

添加{lockUniScaling:true}作为该行的第二个参数

var g = new fabric.Group([rect, linkBtn], {lockUniScaling : true});

lockUniScaling 防止在X或Y方向上缩放,但不能同时在两个方向上缩放。换句话说,可以防止对象按比例缩放。