有关完整问题说明的演示,请参阅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进行调用?我不关心浏览器的兼容性。
答案 0 :(得分:0)
作为W3C SVG规范4.5.23 Interface SVGLocatable,getBBox()不应包括描边,剪裁,遮罩和滤镜效果。
SVGRect getBBox()
返回当前用户空间中的紧束缚框(即,在应用'transform'属性后,如果有的话)在所有包含的图形元素的几何上, 不包括抚摸,剪裁,遮罩和过滤效果 )。请注意,getBBox必须在调用方法时返回实际的边界框,即使元素尚未呈现也是如此。