Wie kann ich das animieren eines progressiven zeichnen von svg-Pfad?
Möchte ich animieren, ein progressives zeichnen einer Linie, die mit nur mit css svg/canvas und js maximum. Eine Idee, die Linie, die ich zeichnen möchte, kann gefunden werden hier
<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/-->
<g>
<title>Layer 1</title>
<path d="m33,104c1,0 2.1306,-0.8037 23,3c9.07012,1.65314 10,2 24,2c7,0 29,0 33,0c8,0 9,0 11,0c2,0 8,0 11,0c9,0 17,0 18,0c10,0 12,0 20,0c1,0 6,0 7,0c2,0 3.07613,0.38268 4,0c2.61313,-1.08239 2,-3 2,-6c0,-1 0,-2 0,-3c0,-1 0,-2 0,-3c0,-1 0,-2 0,-3c0,-1 0.30745,-3.186 -1,-5c-0.8269,-1.14727 -0.09789,-2.82443 -2,-4c-0.85065,-0.52573 -2.82443,-0.09789 -4,-2c-0.52573,-0.85065 -2.58578,-0.58578 -4,-2c-0.70711,-0.70711 -1.81265,-1.20681 -4,-3c-2.78833,-2.28588 -3.64749,-2.97251 -8,-4c-2.91975,-0.68926 -4.82375,-2.48626 -7,-3c-2.91975,-0.68926 -5.15224,-0.23463 -7,-1c-1.30656,-0.5412 -4.38687,-1.91761 -7,-3c-1.84776,-0.76537 -5.03609,0.37821 -7,0c-5.28799,-1.01837 -8,-3 -9,-3c-2,0 -5.0535,-0.54049 -7,-1c-2.17625,-0.51374 -4.15224,-0.23463 -6,-1c-1.30656,-0.54119 -3,-1 -4,-1c-2,0 -5,-1 -6,-1c-1,0 -3,-2 -6,-2c-2,0 -5,-2 -6,-2c-2,0 -2.02583,-0.67963 -4,-1c-3.12144,-0.50654 -4.15224,-0.23463 -6,-1c-1.30656,-0.54119 -2,-1 -3,-1c-2,0 -3,0 -5,0c-1,0 -2,0 -3,0c-1,0 -2,0 -3,0c-1,0 -2,0 -3,0c-2,0 -3.85273,0.1731 -5,1c-1.81399,1.30745 -5.18601,1.69255 -7,3c-1.14727,0.8269 -1.82375,2.48626 -4,3c-0.97325,0.22975 -1.69344,1.45881 -3,2c-0.92388,0.38268 -1.45951,1.0535 -1,3c0.51374,2.17625 3.07844,2.78985 6,4c2.06586,0.85571 3.38688,1.91761 6,3c1.84776,0.76537 5.2987,-1.05146 7,0c1.90211,1.17557 3.82375,2.48626 6,3c0.97325,0.22975 3.29289,0.29289 4,1c0.70711,0.70711 4,2 9,4c5,2 8,4 11,4c2,0 5,0 7,0c3,0 5,0 7,0c2,0 4,0 7,0c2,0 4,0 8,0c3,0 7,0 10,0c4,0 7,0 12,0c3,0 5,0 6,0c2,0 3,0 5,0c1,0 1.09789,-0.82443 3,-2c0.85065,-0.52573 3.07613,0.38268 4,0c1.30656,-0.5412 0.71022,-2.04291 1,-3c1.04483,-3.45084 2.84723,-5.04132 4,-9c0.88414,-3.03616 1.85194,-5.22836 3,-8c0.5412,-1.30656 1.5405,-2.0535 2,-4c0.51375,-2.17625 2.71413,-4.21167 5,-7c2.68979,-3.28101 4,-6 5,-7c1,-1 2,-2 2,-4c0,-1 0.70711,-2.29289 0,-3c-0.70711,-0.70711 -2.07613,0.38268 -3,0c-1.30656,-0.54119 -2,-1 -4,-1c-3,0 -6.87856,-2.49346 -10,-3c-2.96126,-0.48055 -6.71201,-0.98162 -12,-2c-2.94586,-0.56732 -5,-1 -9,-1c-3,0 -6,-1 -8,-1c-2,0 -5,-3 -7,-3c-2,0 -5.38687,-0.91761 -8,-2c-0.92388,-0.38268 -3.0535,-0.54049 -5,-1c-2.17625,-0.51374 -4.58578,0.41421 -6,-1c-0.70711,-0.70711 -1,-1 -2,-1c-1,0 -2,0 -3,0c-1,0 -2,0 -4,0c-1,0 -2,0 -3,0c-1,0 -2,0 -4,0c-1,0 -2,0 -3,0c-2,0 -3,0 -5,0c-1,0 -2,0 -3,0c-1,0 -3,0 -4,0c-3,0 -5,0 -7,0c-2,0 -4,0 -6,0c-2,0 -3,0 -5,0c-1,0 -2,0 -3,0c-2,0 -4,0 -5,0c-1,0 -2,0 -4,0c-1,0 -2,0 -3,1l-1,0" id="svg_1" stroke-width="5" stroke="#000000" fill="none"/>
</g>
</svg>
Mögliche Duplikate von: stackoverflow.com/questions/13408144/simple-path-transition
Eine andere ähnliche Frage: stackoverflow.com/questions/5924238/...
Eine andere ähnliche Frage: stackoverflow.com/questions/5924238/...
InformationsquelleAutor Dan Ovidiu Boncut | 2013-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es drei Techniken aufgeführt, die in diesem Antwort:
Es ist ein all-SVG-Lösung beinhaltet, dass die schrittweise änderung der
stroke-dasharray
für die Form zu zeichnen mehr und mehr 'dash', gefolgt von einer riesigen Lücke.Demo: http://phrogz.net/svg/progressively-drawing-svg-path-via-dasharray.html
Relevante code:
Alternativ können Sie weiterhin verwenden, alle SVG und wählen Sie zum erstellen der SVG-Pfad zu einem Befehl zu einem Zeitpunkt:
Demo: http://phrogz.net/svg/progressively-cloning-svg-path.html
Relevante code:
Schließlich können Sie wählen, zu zeichnen, die Ihren Weg zu einem HTML5-canvas-sampling der SVG-Pfad regelmäßig und Zeichnung auf die Leinwand. (Beachten Sie, dass die SVG-Pfad nicht angezeigt werden müssen, für diese zu passieren; Sie können erstellen Sie ein SVG-path-element komplett in JavaScript und Probe):
Demo: http://phrogz.net/svg/progressively-drawing-svg-path.html
Relevante code:
InformationsquelleAutor Phrogz
So gibt es diese ähnliche Frage mit dieser Antwort.
Nahm ich Ihr Weg und steckte es in den code in die Antwort.
jsfiddle demo
Html:
Javascript ( Beachten Sie, dass Jquery 1.8.3 und Raphael 1.5.2 wurde in dem Beispiel verwendet ):
d
] - Attribut und legte es in diepathString
variable.stroke-width
]Habe ich nur gespielt, um mit raphael ganz kurz einmal, aber die überprüfung der Beispiele und schauen, wie der code aufgebaut ist (
from page source
) bekommt man schon Recht weit ( ich konnte mich nicht erinnern, wie/wo man dasstroke-width
, so ich habe die Methode aus dem Quelltext der Seite dieser Beispiel. ).Finden Sie raphael + mehr Infos hier.
Nur zum Spaß, Machte ich meine eigenen Weg...
Ich auskommentiert das hover-Linien. Jsfiddle
Das ist Super, danke!
InformationsquelleAutor Joonas
Mit Phrogz hervorragende Technik, die ich erstellt eine sehr einfache GreenSock animation mit TweenLite, um zwischen den length-Wert zu getTotalLength () - Wert.
Wie Sie sehen können, in der demo, Haken Sie diese in eine tween-engine gibt Ihnen Tonnen von Kontrolle, und es besteht sehr wenig code.
Viel Respekt zu Phrogz für die tolle Idee und den code.
http://codepen.io/GreenSock/pen/zLiux
InformationsquelleAutor carl
Ich habe etwas ähnliches im letzten Jahr zu animieren, eine Zeichnung im canvas-Bereich. Die Pfade sind alle SVG-Typ Pfade mit Kurven und Linien, so könnte man diese direkt aus deiner SVG-Datei und legen Sie Sie in das Javascript-array.
http://www.ashleysheridan.co.uk/coding/javascript/Animated+Leuchtende+Linie+Zeichnung+in+Leinwand
InformationsquelleAutor Ashley Sheridan