Edit: Velocity имеет некоторую строку анимации встроенную поддержку в см Rycochets ответ ниже.
Если нет, вы можете попробовать сделать это самостоятельно, разбив строку пути на массив.
Одним из способов может быть использование полиполя данных пути (поскольку Chrome устарел, чтобы обеспечить легкий доступ к точкам массива) на polyfill. Затем вы можете выполнить петлю, подобную ниже, через точки пути и интерполировать.
Вы также можете попробовать использовать некоторое регулярное выражение для разделения, а затем построить резервную копию, быстрый пример может быть примерно следующим. Вероятно, это не совсем (я не тестировал регулярное выражение, и вы можете получить различное количество элементов, если есть некоторые символы, о которых я не думал).
$velocity=$("#mypath");
var fromPath = "M292,129c55.2,0,193,125.8,193,181S365.7,506,310.5,506S136,355.2,136,300S236.8,129,292,129z";
var toPath = "M230,38c55.2,0,348,57.8,348,113S391.2,569,336,569S55,456.2,55,401S174.8,38,230,38z";
var re = /(([+-]?[0-9\.]+)|[a-z]|\s+)([eE][-+]?[0-9]+)?/gi
var fromMatch = fromPath.match(re)
var toMatch = toPath.match(re)
$velocity.velocity(
{ opacity: 0.5, tween: [0,1] },
{ progress: function(el, complete, remaining, start, tweenValue) {
var interpPath = '';
for(c=0; c<fromMatch.length; c++) {
if(!isNaN(fromMatch[c])) {
interpPath += (toMatch[c] - fromMatch[c]) * tweenValue + +fromMatch[c]
} else {
interpPath += toMatch[c]
}
}
el[0].setAttribute('d', interpPath)
} }
)
jsfiddle
Пожалуйста, обратите внимание, что отрицательные числа как часть строки не прослушивалась до скорости 1.4.3 – Rycochet