0

使用 svg-pan-zoom 实用程序,我想在每次更改时注册缩放和平移值(使用onPan()and onZoom())并使用这些保存的值将我的 SVG 平移和缩放到相同的位置(使用pan()and zoom())。

如果缩放级别未更改,我可以正常工作,但是,如果缩放级别更改,我在 svg 的所需位置和真实位置之间存在差距。

你可以在那个小提琴中看到这个问题:首先,放大,然后按下平移按钮。我希望我的 svg 保持其当前位置。

我在 stackoverflow 上阅读了其他关于类似情况的帖子(我想我应该使用来自 的数据getSizes()),但我仍然无法使其工作。

有什么建议吗?

4

1 回答 1

0

好的,我得到了解决方案,这很明显。缩放时,我需要对保存的平移应用缩放因子。

onZoom: function(zoom) {
  ratio = zoom/currentZoom;
  currentZoom = zoom;
  currentPan = {
    x: currentPan.x*ratio,
    y: currentPan.y*ratio
  }
}

在此处查看完整代码

于 2019-12-19T19:13:16.723 回答