2012-01-13 176 views
2

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

但是很明显我错了一些地方。我正在尝试将视框动画化,以模仿某种形式的股票行情显示,保持y坐标不变,但改变x坐标(不改变实际显示的单位数量),但出现错误。不知怎的,我的Y尺度变化。 在现代浏览器中,您可以验证yourself(拉动滑块以更改视图框)。 我在SVG规范中错过了什么?

+0

视框被设置为“min-x min-y max-x max-y”的对立面“min-x min-y width height” – 2012-01-15 18:12:42

回答

4

您错过了SVG规范中的preserveAspectRatio属性。它强制默认情况下保留在视框中看到的宽高比。听起来像是你以后的样子是preserveAspectRatio =“none”

+0

Hmm none可能的值是给我想要的结果。我想我会想要xMidYNone的东西。使用“无”,y缩放比较好,但x缩放比例非常糟糕。我可以通过动画路径的起始点来解决它,但我很想通过视图框来解决它。 – 2012-01-13 15:11:23