2014-09-20 2 views
0

Я пытаюсь пульсировать звезду, используя animateTransform с type="scale", но вместо масштабирования вокруг центра звезды он масштабируется влево и вниз. Как масштабировать звезду вокруг центра?Как сделать анимацию svg анимации вокруг центра фигуры?

код SVG:

<svg version="1.1" id="star" xmlns="http://www.w3.org/2000/svg" x="170px" y="385px" width="100px" height="100px" viewBox="0 0 60 60" xml:space="preserve"> 
    <g> 
     <polygon fill="#DAC978" points="18.832,36.694 5.903,25.156 23.146,23.419 30.125,7.557 37.104,23.419 54.347,25.155 41.417,36.694 45.095,53.629 30.125,44.898 15.155,53.63" /> 
     <path fill="#A58144" d="M30.125,13.765l4.104,9.327l1.175,2.669l2.901,0.292l10.139,1.021l-7.603,6.785L38.665,35.8l0.618,2.851 l2.162,9.957l-8.801-5.134l-2.519-1.469l-2.52,1.469l-8.803,5.134l2.162-9.957l0.619-2.85l-2.175-1.942l-7.603-6.785l10.139-1.021 l2.901-0.292l1.174-2.669L30.125,13.765 M30.125,1.35l-8.681,19.729L0,23.237l16.08,14.352l-4.574,21.063l18.62-10.858 l18.618,10.858L44.17,37.589l16.081-14.352l-21.445-2.159L30.125,1.35L30.125,1.35z" /> 
     <animateTransform 
      attributeType="xml" 
      attributeName="transform" 
      type="scale" 
      from="0" 
      by="1" 
      dur="1s" 
      repeatCount="10" 
     /> 

    </g> 
</svg> 

jsFiddle с рабочим кодом.

+0

здесь рабочий код http://jsfiddle.net/ayD2N/43/ –

ответ

1

animateTransform тип scale похоже на масштаб всегда изначальный на (0, 0). Одним из возможных решений может быть перевод вашего полигона так, чтобы его центр находился в (0, 0).

Работает jsFiddle example.

Изменения, внесенные в исходный код:

  • Окно видимости изменяется от viewBox="0 0 60 60" к viewBox="-30 -30 60 60", чтобы иметь центр viewBox на (0, 0) (для получения более подробной viewBoxes вы можете увидеть this tutorial)

  • polygon и path сгруппированы, а затем переведены так, что их центр также находится в (0, 0):

    <g transform="translate(-30,-30)"> 
        <polygon ... /> 
        <path ... /> 
    </g> 
    
+0

Большое спасибо! он работает для меня –

Смежные вопросы