可以在d3上运行多种缩放

时间:2017-02-16 15:31:08

标签: d3.js zoom

我正在尝试通过画布和每个轴进行缩放的趋势。 画布应缩放所有轴,单轴缩放应仅自动缩放。

到目前为止一切顺利。

现在我希望画布仅缩放选定的轴。但是当我重新选择并取消选择轴时,它会通过缩放到当前比例来跳跃。

我想过将evry轴的缩放添加到画布,但是



canvas.call(zoom1).call(zoom2);




只会拨打最后一个。

有没有人有任何想法?

谢谢!

2 个答案:

答案 0 :(得分:0)

我通过调用相应组的缩放功能找到了解决方案。

See https://jsfiddle.net/DaWa/3jfs6zb1/2/

现在我遇到了问题,两个变换(全局和单轴)不能相互适应。

有什么想法吗?

答案 1 :(得分:0)

我找到了另一种缩放多轴和全局缩放的方法。

以下示例没有画布,但应该以相同的方式工作:

https://jsfiddle.net/DaWa/wnxu7m04/3/

以前解决方案的不同之处在于

the scale will be adapted when changing the zoom selection 
that all rects ecpet of rect which calls the zoom will be reset.

我知道这个解决方案有点hacky但目前没有官方解决方案(见https://github.com/d3/d3-zoom/issues/48