无法使用笔画宽度获得Circle的外部尺寸,但Chrome可以

时间:2014-03-18 13:06:11

标签: javascript svg

有关完整问题说明的演示,请参阅http://jsfiddle.net/Lh3Um/22/

简单地说:我无法弄清楚Chrome调试器如何为我的svg中半径为20px且行程为5px的圆形元素报告'46 x 46'。

getBBox()getBoundingClientRect()都没有给我这个价值。奇怪的是,在这种情况下,getBoundingClientRect()报告的维度与getBBox()相同;在它总是报告“45 x 45”之前 - 不是100%准确,但至少更接近我想要的。

任何人都可以告诉我Chrome是如何获得“46 x 46”维度的,如果我可以使用javascript进行调用?我不关心浏览器的兼容性。

1 个答案:

答案 0 :(得分:0)

作为W3C SVG规范4.5.23 Interface SVGLocatable,getBBox()不应包括描边,剪裁,遮罩和滤镜效果。

SVGRect getBBox()

返回当前用户空间中的紧束缚框(即,在应用'transform'属性后,如果有的话)在所有包含的图形元素的几何上, 不包括抚摸,剪裁,遮罩和过滤效果 )。请注意,getBBox必须在调用方法时返回实际的边界框,即使元素尚未呈现也是如此。