jQuery, SVG: Wie animiere ich einen Attributwert (keine Stileigenschaft)?

8

Ich muss ein Attribut eines SVG-Elements animieren, das kein CSS-Gegenstück hat - <circle cx="..." /> Wie kann ich das erreichen?

Oder ich kann eine Alternative, z.B. wenn ich <g/> mit CSS top oder ähnlich animieren könnte.

Irgendwelche Erfahrungen?

Danke, Ondra

Beachten Sie, dass dies kein Duplikat von Wie kann ich einen Attributwert (keine Stileigenschaft) mit jQuery animieren? , da es sich um HTML handelt.

Siehe auch jQuery unter SVG

Aktualisieren

Am Ende habe ich eine manuelle Animation wie in mit JQuery ziehbarem SVG gemacht und Jquery-svg .

jQuery-Lösung immer noch willkommen.

Wie auch immer, das hat mich zu anderen Problemen geführt - Einheiten stimmen nicht überein. evt.clientX ist in Pixeln, aber circle.cx.baseVal.value ist in einigen relativen Einheiten. Also wenn ich es mache

%Vor%

Und wenn <embed> 3x größer ist als die "eigene" Größe des SVG, dann bewegt sich der Kreis 3x schneller als der Zeiger.

Aktualisieren

Ich habe es sogar versucht

%Vor%

Aber convertToSpecifiedUnits() gibt undefined zurück, was ein Mangel an Implementierung von Ссылка .

    
Ondra Žižka 16.08.2010, 23:37
quelle

2 Antworten

2

jQuery selbst erfüllt möglicherweise nicht Ihre Anforderungen für einfaches svg drag & amp; drop (zu diesem Zeitpunkt), also müssen Sie entweder machen, was Sie wollen, oder ein anderes js-Framework verwenden. Ich würde zum Beispiel empfehlen, raphaël zu sehen.

Die Werte von event.clientX / Y befinden sich nicht in Benutzereinheiten, sie müssen konvertiert werden. Siehe z. B. Ссылка für ein Beispiel zum Ziehen von Svg-Objekten.

    
Erik Dahlström 17.08.2010 08:06
quelle
1

Für alle, die noch interessiert sind, ist ein jQuery-Plugin-Projekt Ссылка sehr nützlich zum Animieren von SVG-Elementen.

    
Gerard 09.05.2012 17:07
quelle