在内联 SVG 上应用平移和缩放

Apply panning and zooming on inline SVG

所以我们有了这个主要项目,我们的目标是通过使用内联 SVG 创建一个简单的寻路系统,该 SVG 包括缩放和平移功能,目标是部署在触摸屏设备上。我们想创建类似 google 地图或类似这样的东西:http://bl.ocks.org/mbostock/3892919

我们真的很想使用这个插件,但是一切都在脚本中预定义了,我们真的不知道如何在内联 SVG 上使用它(或者也许有人帮助我们解释整个代码是如何工作的,也许会教我们如何使其适用于内联 SVG,因为我们是纯粹的业余爱好者。)。找了很多插件,好像都不合适

如有疑问,只是 scale/move 一切。

Zooming essentially involves making the elements bigger/smaller according to your zoom level and panning involves making the elements move in relation to your viewport.

所以:

  • 在每个缩放级别上,遍历所有路径并 scale 它们 适当的系数.

  • 对于平移,您只需 translate(移动)您的 SVG 元素到 您平移的相反方向。

您可以通过查看以下内容了解有关 scaling/translating SVG 元素的更多信息:SVG transformations


另一方面,一些谷歌搜索(即弹出的第一个结果)变成 this neat library,这对于您的目的来说看起来非常简单。