2017-04-01 66 views
0

我创建了一个带有svg背景(幻想城市)的框架。当我用鼠标移动建筑物时,它们变成红色,如果我点击它们,我会打开一个包含一些信息的气泡。 现在这个城市需要沿着街道移动的人们。Svg对象沿线路径移动并调整窗口大小

现在的问题是,人们沿着svg路径移动,但如果我调整窗口大小,路径不会调整大小,但保持不变。

我使用VAR SVGPath.getTotalLength();得到路径的总长度,然后一个jQuery $.each()循环中我明白了

var point = Path.getPointAtLength(v); 
    var x = point.x; 
    var y = point.y; 

的我不明白的地方,我错了坐标。

这里CodePen与代码http://codepen.io/Angussimons/full/oZmNer/

+1

在什么坐标你需要这个职位吗?在SVG的?在你的网页?你可能需要从一个转换到另一个(检查getCTM)和/或应用变换矩阵。 – jcaron

回答

0

好吧,我找到了解决办法。 我在这里发布,如果别人有同样的问题。

svg的原始大小是1920x1080。

因此,解决办法找到新的X和Y调整窗口大小:

var x = (point.x * w)/1920; 
var y = (point.y * h)/1080; 

为了让我用jQuery的.width() & .height()如下窗口大小:

var w = $(window).width(); 
var h = $(window).height();