我用snap svg创建了一个codepen:Codepen
我尝试围绕他自己的中心点无限循环旋转一个svg-gear。 这适用于Internet Explorer,但在Mozilla-Firefox和Google-Chrome上失败。
Chrome和Firefox的中心点似乎不对,因此齿轮移出了他的位置。
对于我使用以下代码的轮换:
function infRotate(el, time, cw) {
var box = el.getBBox();
el.transform('r0,' + box.cx + ',' + box.cy);
if (cw)
el.animate({transform: 'r360,' + box.cx + ', ' + box.cy}, time, mina.linear, infRotate.bind(null, el, time, cw));
else
el.animate({transform: 'r-360,' + box.cx + ', ' + box.cy}, time, mina.linear, infRotate.bind(null, el, time, cw));
}
我需要为Firefox和Chrome找到正确的中心点做些什么? 谢谢你的帮助。
答案 0 :(得分:2)
根据@ lan的评论找到解决方案。
齿轮组成一组,其中包含X / Y转换。 所以我尝试删除svg文件中的每个组和图层。要清楚地看到对象的嵌套,我使用 Inkscape 中的 XML-Editor 。
必须使用相对变换将每个对象移动到其原始位置。使用相对移动可防止inkscape将翻译属性打印到组。
在Inkscape中移动对象相对性的步骤:
答案 1 :(得分:0)
Joel除了使用box.cx和box.cy取得中心。通过将容器的宽度和高度除以2来取中心,然后设置它。