Wir können Pfadanimation machen, indem Sie die Bounding Box Ihres Pfades finden und das tun.
wenn Ihr Weg einige Clipping -rectangle bedeutet wie, dass mit unter
<g id="container_svg_SeriesGroup_0" transform="translate(128.8,435)" clip-path="url(#container_svg_SeriesGroup_0_ClipRect)"><path id="container_svg_John_0" fill="none" stroke-dasharray="5,5" stroke-width="3" stroke="url(#container_svg_John0Gradient)" stroke-linecap="butt" stroke-linejoin="round" d="M 0 -17.25 L 21.7 -112.12499999999999 M 21.7 -112.12499999999999 L 43.4 -51.75 M 43.4 -51.75 L 86.8 -25.875 M 86.8 -25.875 L 108.5 -155.25 "/><defs><clipPath id="container_svg_SeriesGroup_0_ClipRect"><rect id="container_svg_SeriesGroup_0_ClipRect" x="0" y="-155.25" width="118.5" height="148" fill="white" stroke-width="1" stroke="transparent" style="display: inline-block; width: 118.5px;"/></clipPath></defs></g>
var box = $("#"+ path.id")[0].getBBox();
das Rechteck auf dem Feld erstellen basiert und die Menge dieses Rechteck als Clip-Pfad im Weg.
Dann erhöhen Sie die Breite des Rechtecks Schritt für Schritt in jquery.animate.
doAnimation: function() {
//cliprect is your clipped rectangle path.
$(clipRect).animate(
{ width: 1000},
{
duration: 2000,
step: function (now, fx) {
$(clipRect).attr("width", now);
}
});
},
jquery.animate Schritt Funktion wird Schritt für die Breite des Clips-rect Schritt zu erhöhen.
Dank Wout, ich werde versuchen, herauszufinden, wie dies zu tun ist. Haben Sie Vorschläge, wo Sie anfangen sollen? Wäre es beispielsweise akzeptabel, die SMIL-Tags wie im ersten Link der Frage zu verwenden? Ich plane, komplexe Pfade zu animieren, die mit svg.import.js importiert wurden. –