SVG和CSS中的简单速度表动画

时间:2014-07-16 09:05:00

标签: css css3 animation svg

所以我正在尝试制作带有SVG图标的CSS3动画,其中针在速度上旋转,同时在中心保持一个固定点。

在这种情况下,我试图从右到左进行动画(好像速度表要零),但似乎做不到。我接近以下内容:

<g>
    <path fill="#C6A3A3" id="arrow" d="M26.323,23.042c-0.256,0-0.513-0.098-0.707-0.293c-0.392-0.391-0.392-1.023,0-1.414l9.899-9.899
    c0.391-0.391,1.022-0.391,1.414,0c0.391,0.391,0.391,1.023,0,1.414l-9.899,9.899C26.834,22.944,26.578,23.042,26.323,23.042z"/>
</g>

(SVG还有更多内容,但这是相关内容)

SCSS文件:

@keyframes speedo {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-120deg);
  }
}

#arrow {
  fill: rgb(66, 169, 97);
  animation: speedo 2s ease infinite;
  transform-origin: 30px 20px 10px;
}

由此,我只得到这个: enter image description here

它围绕自己的中心旋转,而不是速度本身的中心。我看到人们围绕<g>元素进行变换,但我不确定如何应用它们。此外,transform-origin: bottom left没有帮助。我仍然试图掌握CSS变换/动画,特别是当它们与SVG有关时,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

transform-origin:center bottom;
如果针图像是直的,则

将起作用。看起来问题是针图像是成角度的。让CSS创建角度。

答案 1 :(得分:0)

你要找的是transform-origin它让你选择动画锚点的位置,试试这个:

transform-origin:center bottom;

可在此处找到母公司:transform-origin