我有一个树的 SVG 布局(来自 D3)。我的 HTML 中有一个 SVG 元素,它占据了页面宽度和高度的 100%。然后,在该 SVG 元素中,D3 渲染一个组元素,其中包含一堆圆圈和线条。例如:
<svg style='width:100%;height:100%;'>
<g>
...stuff...
</g>
</svg>
我希望能够缩放和平移,以便树的某个部分(组元素)占据屏幕。我有要放大的区域的确切坐标,所以理想情况下,我想将 SVG 元素 X 像素向上和向左移动,然后按 Y 缩放整个元素。我怎样才能最好地做到这一点?
从我正在阅读的内容来看, viewBox 属性最适合这个,但我只是无法弄清楚我如何能够只放大一个部分。这个例子似乎得到了我想要的,但我的 SVG 元素是用百分比来衡量的,而不是像素。即使坐标系应该是任意的,我也很难在两者之间进行转换。