Warum animiert Snap.svg nur einige Attribute gruppierter Elemente? In diesem Jsfiddle wenn Elemente gruppiert sind, animieren sie die Opazität und transformieren aber nicht den Radius. Wenn Animation auf ein einzelnes Element angewendet wird, sind alle Attribute animiert. Ich verstehe es nicht.Warum Snap.svg nur einige Attribute in der Gruppe animiert?
(function(){
var s = Snap("#svg");
var c1 = s.circle(10, 10, 10);
var c2 = s.circle(50, 20, 10);
var c3 = s.circle(50, 100, 10);
var points = s.group(c1,c2);
var states =
[
{
transform: 'r90,25,25',
r: 10,
opacity: 0.3
},
{
transform: 'r90,200,200',
r: 5,
opacity: 1
},
];
function animateGroup(el, i) {
points.animate(states[i], 1000, function() {
animateGroup(el, ++i in states ? i : 0);
})
}
function animateOne(el, i) {
c3.animate(states[i], 1000, function() {
animateOne(el, ++i in states ? i : 0);
})
}
animateGroup(points, 0);
animateOne(c3,0);
})();
Also, wie gehe ich da rum? Schleife durch alle Gruppenelemente? – przemoo83
Entschuldigung, ich habe gerade die Antwort aktualisiert. Wenn Sie ein Set mit den späteren Versionen von Snap verwenden, können Sie eine Animation auf das Set anwenden, das ich denke. Andernfalls können Sie eine forEach über alle verwenden (das gleiche passiert irgendwie hinter den Kulissen, es ist nur ein Fall, der bequemer ist). – Ian
Habe gerade ein Beispiel hinzugefügt. – Ian