Добрый день уважаемые. Подскажите кто знает аналог библиотеки https://greensock.com/morphSVG только бесплатный. Необходимо менять path форму у SVG элемента с одной на другую посредствам JS
-
Она более-менее бесплатная... – Qwertiy Jan 18 '17 at 11:24
-
У меня есть собственный скрипт, который изменяет path d. https://jsfiddle.net/yuri_spivak/ws4xknot/ – Yuri Jan 18 '17 at 17:57
-
@Yuri красиво работает, но на SVG код был бы в несколько раз короче. – Alexandr_TT Jan 18 '17 at 18:39
-
@Alexandr_T, не спорю :) – Yuri Jan 18 '17 at 18:41
1 Answers
Прежде всего разработка Дмитрия Барановского (Dmitry Baranovskiy) snapsvg.io
К сожалению он закрыл поддержку своей другой, более ранней библиотеки Raphaël
Вот интересный пример, как с помощью snapsvg делать, то, что вы хотите - Elastic SVG Elements
Вспомнил, что на гитхабе осталась поддержка Raphaël.
Разработка Олега Соломки mojs - появилась недавно, но активно используется судя по количеству примеров на codepen.
Пример там же.
Velocity.js и ещё есть достаточно много библиотек для трансформации SVG.
UPD 19.01.2017
15 JavaScript-библиотек для анимации SVG
Можно делать трансформацию фигур вручную, поверьте это не сложно. Главное условие, чтобы количество точек во всех подпутях - M0,50 L50,0 L100,50 совпадало по количеству.
<svg version="1.1"
baseProfile="full"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ev="http://www.w3.org/2001/xml-events">
<title> The path line</title>
<desc> The path line http://svg-art.ru </desc>
<circle cx="50" cy="50" r="50" stroke="grey" fill="greenyellow" />
<path d="M0,50 L50,0 L100,50" stroke="dodgerblue" fill="dodgerblue" >
<animate dur="4s" repeatCount="indefinite"
attributeName="d"
values="M0,50 L50,0 L100,50;
M0,50 L50,100 L100,50;
M0,50 L50,0 L100,50;"/>
</path>
</svg>
- 110,146
- 23
- 114
- 384