У меня есть сайт-меню, состоящее из нескольких полигонов, по которым пользователь может щелкнуть.Кроме того, полигоны разделяют некоторые узлы.Пока все хорошо (см. Код ниже).
Теперь я хотел бы анимировать эти полигоны таким образом, чтобы они динамически изменяли свою форму в медленном и бесконечном цикле.Для этого мне нужно анимировать каждый узел в отдельности.Я думал о том, чтобы позволить узлам двигаться по пути (например, по маленькому кругу), каждый со своей индивидуальной скоростью.
Есть ли способ сделать это, используя только SVG / CSS?Или мне нужно искать решение с помощью js или snap?Поскольку меню является основной функциональной частью веб-страницы, я хочу, чтобы оно было максимально простым и ванильным.
Вот рабочий пример с двумя полигонами, которые я скопировал из этой темы .
polygon {
stroke-width: 1;
stroke: red;
fill: transparent;
}
polygon:hover {
fill: red;
}
<svg viewBox="0 0 999 799">
<polygon points="445,161 345,174 500,10" />
<polygon points="445,161 345,174 500,270" />
</svg>
В следующем фрагменте показан единственный способ, которым я смог придумать, чтобы переместить один отдельный узел.К сожалению, для этого требуются координаты всех остальных точек.Поскольку узлы разделены между различными полигонами, это решение не работает для меня.
<polygon points="" fill="red">
<animate attributeName="points" dur="1s" fill="freeze"
from="0,0, 0,100, 100,100"
to="0,0, 0,100, 100,50"/>
</polygon>
Большое спасибо за вашу помощь!