【发布时间】:2014-12-30 19:18:31
【问题描述】:
那么,当 svg 元素上没有设置宽度和高度时,如何使用 javascript 获取 SVG 文件的大小? svg 是一个字符串,但如果有必要可以做成一个 DOM。
【问题讨论】:
标签: javascript svg
那么,当 svg 元素上没有设置宽度和高度时,如何使用 javascript 获取 SVG 文件的大小? svg 是一个字符串,但如果有必要可以做成一个 DOM。
【问题讨论】:
标签: javascript svg
您可以使用 SVGElement 对象的 getBBox() 方法。它告诉您宽度和高度、x 和 y 偏移(以像素为单位),而不考虑元素的缩放。
document.getElementById('myelem').getBBox().width
document.getElementById('myelem').getBBox().height
我想这就是你要找的东西。
编辑:
我最近还了解到鲜为人知的getBoundingClientRect() 也可以工作!你也可以这样做:var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;
请记住,getBBox 和 getBoundingClientRect 之间存在差异。 getBBox 获取初始尺寸 - getBoundingClientRect 还尊重使用比例等完成的转换。
【讨论】:
getBBox 返回{[..], width: 0, height: 0},getBoundingClientRect 也是如此。后者不仅适用于 FireFox。
SVG 是可缩放矢量图形,因此可以具有任意高度和宽度。只有比例是由格式固定的。
【讨论】: