我可以更改纸张和模板上元素的默认大小吗? [Jointjs] [RappidJS]

can i change default size of elements on paper and stencil? [Jointjs] [RappidJS]

我想在从模板拖到纸上时提供元素的默认大小。 我正在使用 standard.image 类型的元素。有可能使用 rappid 库吗?

据我了解,您希望模板中的元素具有一定大小,并在将它们放置在纸上后立即更改大小。

定义模板元素时,添加所需的纸张尺寸作为属性。

{
  type: 'standard.Image',
  size: { width: 100, height: 100 }, // stencil size
  paperSize: { width: 200, height: 200 }, // paper size
  attrs: { image: { xlinkHref: 'image.png' }}
}

然后使用 dragEndClone 模板选项克隆和调整元素大小。

new joint.ui.Stencil({
  dragEndClone: function(el) {
    var clone = el.clone();
    var paperSize = el.get('paperSize');
    if (paperSize) {
      clone.resize(paperSize.width, paperSize.height);
      clone.unset('paperSize');
    }
    return clone; 
  }
});

或者,您可以使用 dragStartClone 在用户开始从模板中拖动元素时立即使用纸张大小。