Fabric.js 如何使 SVG 适应父对象
How to fit SVG into parent object in Fabric.js
如何在 Fabric.js loadSVGFromString
方法中设置 SVG 大小?
我找不到适合父对象的任何解决方案 (groupSVGElements
)。还检查了文档,但在我刚刚看到的任何地方,他们总是使用具有 SVG 的 canvas 尺寸。
因为您当前的 SVG 元素不包含任何 width 和 height 属性,您需要使用viewBox.baseVal.width
和 viewBox.baseVal.height
分别得到它的 width 和 height 并相应地设置它以适应父对象。
// get the svg's width and height
let svg = document.querySelector('#testvg');
let svgWidth = svg.viewBox.baseVal.width;
let svgHeight = svg.viewBox.baseVal.height;
// set to fit into a parent object (canvas)
graphic.set({
top: 5,
left: 5,
width: svgWidth,
height: svgHeight,
scaleX: (canvas.width - 10) / svgWidth,
scaleY: (canvas.height - 10) / svgHeight
});
如何在 Fabric.js loadSVGFromString
方法中设置 SVG 大小?
我找不到适合父对象的任何解决方案 (groupSVGElements
)。还检查了文档,但在我刚刚看到的任何地方,他们总是使用具有 SVG 的 canvas 尺寸。
因为您当前的 SVG 元素不包含任何 width 和 height 属性,您需要使用viewBox.baseVal.width
和 viewBox.baseVal.height
分别得到它的 width 和 height 并相应地设置它以适应父对象。
// get the svg's width and height
let svg = document.querySelector('#testvg');
let svgWidth = svg.viewBox.baseVal.width;
let svgHeight = svg.viewBox.baseVal.height;
// set to fit into a parent object (canvas)
graphic.set({
top: 5,
left: 5,
width: svgWidth,
height: svgHeight,
scaleX: (canvas.width - 10) / svgWidth,
scaleY: (canvas.height - 10) / svgHeight
});