Как изменить размеры некоторых объектов в группе в fabric.js? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть группа из двух объектов, и я хочу, чтобы при изменении размера группы один из объектов не менял размер, а позиция меняла.

Я искал документацию, но не могу найти ссылки для решения этой проблемы.

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 голосов
/ 29 июня 2019

Добавить {lockUniScaling: true} в качестве второго параметра в этой строке

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

lockUniScaling Предотвращает масштабирование в направлении X или Y, но не в обоих.Другими словами, предотвращает непропорциональное масштабирование объекта.

...