我需要从JavaScript中获取SVG中<path>元素在屏幕上的尺寸。
我的SVG上没有任何“变换”或“缩放”(transform,scale)。唯一改变的是viewBox,这将改变SVG中所有元素的大小。
我一直在使用myPath.getBBox(),返回的宽度即使我更改了viewBox也保持不变。
因此,我想知道这个viewBox和路径大小之间的关系。也许有一个计算宽度的函数?
我需要从JavaScript中获取SVG中<path>元素在屏幕上的尺寸。
我的SVG上没有任何“变换”或“缩放”(transform,scale)。唯一改变的是viewBox,这将改变SVG中所有元素的大小。
我一直在使用myPath.getBBox(),返回的宽度即使我更改了viewBox也保持不变。
因此,我想知道这个viewBox和路径大小之间的关系。也许有一个计算宽度的函数?
您可以在路径上调用getBoundingClientRect()
方法以获取尺寸。 它将返回一个ClientRect
对象:
var w = myPath.getBoundingClientRect().width;
var h = myPath.getBoundingClientRect().height;
此外还有一个getScreenCTM()
方法,它将返回调用该方法的元素在当前屏幕像素中的变换矩阵。
[getScreenCTM()] 返回从当前用户单位(即应用了“transform”属性后)到父级用户代理的“像素”之间的变换矩阵[...]注意,如果此元素未连接到文档树,则返回null。