2014-05-14 12 views
1

我有一个svg元素,其中高度和宽度均等于100%,并具有已定义的viewbox属性。 svg包含一系列的polygon对象。在点击一个多边形时,我希望它扩大以填充整个svg(阅读:整个屏幕)。获取svg视框的x最大值

我可以访问svg元素尺寸并相应地调整polygon的大小,但是由于viewbox属性的原因,绘制宽度会变得很短。

有什么方法可以计算视图框内对应最右边的x尺寸?

回答

0

您想要的最大X值将是viewBox的最大值X,您可以通过添加viewBox minX + viewBox width来计算该值。

+0

我觉得还有比这更多的(可能是一个涉及的系数) - minX + viewbox宽度到达g元素的边界边缘,而不是实际的svg。认为这是与纵横比以及如何决定svg的偏移量有关。改变了我的方法,发现了更多可行的方法。不管怎么说,还是要谢谢你。 – Nathan

+0

好的,你没有清楚地说明你正在处理preserveAspectRatio等。这很难,因为SVG并不真正了解它所在的容器的形状 - 而且应该不太在意。 viewBox是为了描述文档的边界 - 或者至少是你感兴趣的边界。如果你在外面绘图,那么你应该更新viewBox来匹配。 –

+0

是的,我没有意识到它保存了AspectRatio在我发布之前一直参与 - 这导致找到一种更好的方式来实现我所需要的,无需测量 – Nathan