2017-02-13 7 views
0

Может ли кто-нибудь объяснить мне, что определяет направление «растущей» анимации? Я покажу маленький пример SVG SMIL анимационный элемент роста

<svg version="1.1" id="Ring" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
 
\t viewBox="0 0 450 320" style="enable-background:new 0 0 450 320;" xml:space="preserve"> 
 
    
 
    <path id="innerRing" fill="none"; stroke="#F7DE4B"; stroke-width="10"; stroke-miterlimit="10"; d="M227.1,25.8c-43.4,0-78.6,8.6-78.6,19.4s35.2,19.4,78.6,19.4s78.6-8.6,78.6-19.4 
 
\t S270.6,25.8,227.1,25.8z"/> 
 

 
<animate xlink:href="#innerRing" attributeName="stroke-dasharray" from="0 168.409 0 168.409 " to="0 0 326.818 0" begin="0" dur="1" repeatCount="1" /> 
 

 
\t <path id="outerRingMin" fill="none"; stroke="#B2A31B"; stroke-width="0.9"; stroke-miterlimit="10"; 
 
\t d="M227.1,59.8c-40.5,0-73.2-6.5-73.2-14.5s32.8-14.5,73.2-14.5c40.5,0,73.2,6.5,73.2,14.5 
 
\t S267.5,59.8,227.1,59.8"/> 
 

 
\t <animate xlink:href="#outerRingMin" attributeName="stroke-dasharray" from="0 153.693 0 153.693" to="0 0 307.386 0" begin="0" dur="1" repeatCount="1" /> 
 
\t 
 
\t <path id="outerRingMax" fill="none"; stroke="#B2A31B"; stroke-width="0.9"; stroke-miterlimit="10"; d="M227.1,69c46,0,83.4-10.7,83.4-24s-37.3-24-83.4-24c-46,0-83.4,10.7-83.4,24 
 
\t c0,13.2,36.7,23.8,82.1,24L227.1,69z"/> 
 

 
\t <animate xlink:href="#outerRingMax" attributeName="stroke-dasharray" from="0 181.92 0 181.92" to="0 0 363.84 0" begin="0" dur="1" repeatCount="1" /> 
 

 
    </svg>
Почему средний круг (желтый) поднимается со дна вверх. ? Как это изменилось?

ответ

0

Потому что начальная точка среднего круга перевернута.

Самый простой способ исправить это - добавить атрибут stroke-dasshoffset в средний круг, чтобы переместить начальную точку удара, например.

<path id="innerRing" fill="none" stroke="#F7DE4B" 
stroke-dashoffset="168.409" 
stroke-width="10" stroke-miterlimit="10" 
d="M227.1,25.8c-43.4,0-78.6,8.6-78.6,19.4s35.2,19.4,78.6,19.4s78.6-8.6,78.6-19.4 
    S270.6,25.8,227.1,25.8z"/> 
+0

Спасибо! К сожалению, я не понял, почему это произошло. Почему начальная точка перевернулась? – BlackStar

+0

Начальные точки строк пути (значение атрибута d) не одинаковы. Я думаю, что когда вы создали SVG, вы (или ваш инструмент рисования) определили так. Если я создаю такую ​​анимацию, я использую элемент «use» для повторного использования определения пути, такого как http://jsdo.it/defghi1977/OYvq – defghi1977

+0

Cool. Спасибо! – BlackStar

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