在窗口大小调整时刷新svg坐标

时间:2014-12-14 23:16:33

标签: javascript svg resize coordinates

我是SVG的新手,我在解决此问题时遇到了问题:

我试图创建一个点系统,围绕单个轴旋转,就像太阳系一样。 中心点是一个圆形div,在CSS calc函数的帮助下放置在视口的中心:

left:  calc(50% - myDivWidth/2);
top: calc(50% - myDivHeight/2);

我使用" cx"将SVG圈子放在这个中心点附近。和" cy"属性和一切正常。

问题在于:当我调整窗口大小时,div会自动移动到屏幕中央。但是我的SVG圆圈没有移动,因为坐标系不会伸展到视口的新大小。现在,如果我在调整大小后重新加载页面,则所有内容都会再次正确放置。

我想我可以在调整大小时重新计算圆圈的坐标,但是它有点重吗? 我的所有圈子都放在一个高度和宽度均为100%的svg标签中。

我希望你能帮助我!谢谢!

1 个答案:

答案 0 :(得分:1)

如果您向SVG添加viewBox属性,它将自动缩放以适合其父视口(<div class="univers">)。

<svg width="100%" height="100%" viewBox="-315 -315 630 630">

使用此viewBox,您可以使用(0,0)作为轨道圆的原点。

Demo here