获取SVG中路径的维度

jsg*_*pil 22 javascript svg bounding-box

我需要从JavaScript中获取SVG中<path>屏幕上的维度.

我的SVG上没有任何"转换"或"缩放"(转换,缩放).唯一改变的是viewBox,它将改变SVG中所有元素的大小.

我一直在使用myPath.getBBox(),即使我更改了我的viewBox,返回的宽度保持不变.

所以我想知道这个viewBox与路径大小的关系是什么.也许有一个计算宽度的函数?

Spa*_*hut 46

您可以getBoundingClientRect()在路径上调用方法来获取尺寸.它将返回一个ClientRect对象:

var w = myPath.getBoundingClientRect().width;
var h = myPath.getBoundingClientRect().height;
Run Code Online (Sandbox Code Playgroud)

还有一种getScreenCTM()方法,它在调用它的元素的当前屏幕像素中返回变换矩阵.规范:

[getScreenCTM()]返回当前用户单位的转换矩阵(即,在应用'transform'属性后,如果有的话)到父用户代理的"像素"通知.[...]注意,如果此元素未挂接到文档树中,则返回null.