如何获取尚未设置的SVG视图框

时间:2014-11-25 17:31:57

标签: svg

这感觉应该是显而易见的,但我觉得我错过了一些东西。

如果我想通过viewBox扩展/移动SVG,假设它已经没有设置(即如果使用viewBox属性创建svg没问题,因为我可以检索并解析) ,我怎么知道它的价值是什么。

假设我有一个svg,

<svg><rect x="10" y="10" width="100" height="100"/></svg> 

如果我在svg上执行了一个检查元素,则没有设置viewBox。此外,如果我想通过currentScale扩展它,这似乎是只读的,与currentTranslate相同(在Chrome中),我的理解是正确的,因为它似乎与我在SO上读过的其他内容相冲突。

所以我觉得我可以假设viewBox上的x,y如果没有设置则为0,0。但宽度/高度怎么样?我想我可以做一些事情,如果没有设置viewBox,获得svg width.baseVal.value,但感觉有点笨重。

所以基本上,是否有一种正确的方法来获取viewBox的minx,miny,width,height,而不管viewBox是否已通过属性设置(如果你可以&#39; t宽度/高度是多少)基于我可以改为使用)?

1 个答案:

答案 0 :(得分:1)

如果没有viewBox,那么绘图将以不同的方式工作。尝试调整具有viewBox的绘图的大小,并比较调整具有。

的绘图时发生的情况

所以没有viewBox的值会使它的工作方式与没有viewBox相同,除了viewBox =“none”(并非所有的UAs都支持viewBox =“none”,因为它是SVG 1.2的一部分,很小而不是部分对于SVG 1.1,Firefox确实像Opera 12那样支持它。