#animation #svg
#Анимация #svg
Вопрос:
у меня проблема с SVG-кодом, и я не могу получить желаемый результат.
Я хочу противоположность row_five. Строка должна простираться снизу вверх.
Код:
<svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" style="fill: rgb(216, 216, 216);">
<rect x="00" y="90" width="20" height="10" style="fill: rgb(216, 216, 216);" id="row_one"/>
<rect x="30" y="70" width="20" height="30" style="fill: rgb(216, 216, 216);" id="row_two"/>
<rect x="60" y="50" width="20" height="50" style="fill: rgb(216, 216, 216);" id="row_three"/>
<rect x="90" y="30" width="20" height="70" style="fill: rgb(216, 216, 216);" id="row_four"/>
<rect x="120" y="10" width="20" height="90" style="fill: rgb(216, 216, 216);" id="row_five">
<animate attributeName="height" from="0" to="90" begin= "0s" dur="1s"/>
</rect>
</svg>
Комментарии:
1. Анимируйте букву y одновременно с высотой.
2. Вы имеете в виду что-то вроде этого?
<rect x="120" y="10" width="20" height="90" style="fill: rgb(216, 216, 216);" id="row_five"> <animate attributeName="height" from="0" to="90" begin= "0s" dur="1s"/> <animate attributeName="<" from="0" to="10" begin= "0s" dur="1s"/> </rect>
Это дает те же результаты, что и раньше
Ответ №1:
Как сказал Роберт, по мере увеличения высоты вы перемещаете положение Y. (0,0) в файлах SVG находится вверху слева. Таким образом, вам на самом деле нужно уменьшить значение Y, а не увеличивать его.
Ваша пятая строка начинается с y = 10 и имеет высоту 90. Итак, нижняя часть панели находится на уровне y = 100. Итак, вам нужно анимировать y
от 100 до 10.
<svg viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" style="fill: rgb(216, 216, 216);">
<rect x="00" y="90" width="20" height="10" style="fill: rgb(216, 216, 216);" id="row_one"/>
<rect x="30" y="70" width="20" height="30" style="fill: rgb(216, 216, 216);" id="row_two"/>
<rect x="60" y="50" width="20" height="50" style="fill: rgb(216, 216, 216);" id="row_three"/>
<rect x="90" y="30" width="20" height="70" style="fill: rgb(216, 216, 216);" id="row_four"/>
<rect x="120" y="10" width="20" height="90" style="fill: rgb(216, 216, 216);" id="row_five">
<animate attributeName="y" from="100" to="10" begin= "0s" dur="1s"/>
<animate attributeName="height" from="0" to="90" begin= "0s" dur="1s"/>
</rect>
</svg>