当<svg>上的宽度/高度属性未设置</svg>时获取svg图形大小

时间:2009-12-29 20:49:35

标签: javascript svg

那么当svg元素没有设置宽度和高度时,如何用javascript获取SVG文件的大小? svg是一个字符串,但必要时可以创建一个DOM。

2 个答案:

答案 0 :(得分:38)

您可以使用SVGElement对象的getBBox()方法。它会以像素为单位告诉您宽度和高度,x和y偏移量,而不考虑元素的缩放比例。

document.getElementById('myelem').getBBox().width  
document.getElementById('myelem').getBBox().height
我认为,

是您正在寻找的。

编辑:

  1. 我最近还了解到,鲜为人知的getBoundingClientRect()也有效!您也可以这样做:var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;

  2. 请注意,getBBox和getBoundingClientRect之间存在差异。 getBBox获取初始维度 - getBoundingClientRect也尊重使用scale等完成的转换

答案 1 :(得分:-3)

SVG是可缩放的矢量图形,因此可以具有任意高度和宽度。只有比率由格式确定。