当SVG元素上未设置宽度和高度时,如何使用JavaScript获取SVG文件的大小?该SVG为字符串,但可以转换为DOM(文档对象模型)。
当SVG元素上未设置宽度和高度时,如何使用JavaScript获取SVG文件的大小?该SVG为字符串,但可以转换为DOM(文档对象模型)。
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还考虑了使用缩放等变换所进行的变换。
SVG是可缩放矢量图形,因此可以具有任意的高度和宽度。只有比例由格式固定。
getBBox
返回{[..], width: 0, height: 0}
,getBoundingClientRect
也是如此。后者仅在FireFox中无法使用。 - Gajus