使用preserveAspectRatio属性和svg.js居中SVG

时间:2014-09-22 11:06:59

标签: javascript svg svg.js

我正在使用svg.js,我正试图把svg放在中间。我正在使用属性preserveAspectRatio,但它不起作用。

我已定义了视图框,但preserveAspectAttribute不起作用。当我写了preserveAspectAttribute消失时,我也不知道为什么。

我已将所有内容(css,svg.js,js和必要的html)放在jsFiddle 中。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:3)

如果您查看控制台(按F12),您将看到错误:

Uncaught TypeError: undefined is not a function

此外,开发工具中的“网络”选项卡显示未加载store.svg。

问题1

您的代码的主要问题是这一行。

imageE.maskWith(circleE).move(-20).attr('preserveAspectRatio', 'xMidYMid meet')

move()期待两个参数,因此此错误导致代码在此时停止。您的代码的商店部分未运行。

如果您将行更改为:

imageE.maskWith(circleE).move(-20,0).attr('preserveAspectRatio', 'xMidYMid meet')
一切正常。

问题2

xMidYmid meet应为xMidYMid meet(大写字母M)。但是,此错误无效,因为无论如何默认值为xMidYMid meet

Working example here