2

我有一个关于 svg 的 viewbox 的问题,在我看来它就像一个无限 svg 计划上的窗口,它的边界是在 svg 元素的 viewBox 属性中设置的。它表示 svg 计划中 2 个坐标之间的矩形。因此,“0 0 1000 500”的 viewBox 显示了 svg 计划的 (0,0) 和 (1000,500) 之间的窗口。当我制作 viewBox (2000, 0, 3000 500) 时,我看到了 (2000,0) 和 (3000,500) 的窗口。x 和 y 缩放未修改:在这两种情况下,我都显示 1000 * 500 单位的 svg 计划。

但显然我在某些地方出错了。我正在尝试对视图框进行动画处理以模拟某种代码显示,保持 y 坐标不变,但更改 x 坐标(不更改显示的实际单位数),但这会出错。不知何故,我的 y 缩放发生了变化。在现代浏览器中,您可以验证自己(拉动滑块以更改视图框)。我在 SVG 规范中遗漏了什么?

4

1 回答 1

4

您错过了SVG 规范中的preserveAspectRatio属性。默认情况下,它会强制保留您在视图框中看到的内容的纵横比。听起来你所追求的是 preserveAspectRatio="none"

于 2012-01-13T14:31:49.613 回答