Für jedes Datenelement füge ich eine Gruppe (g class = "parent") mit einem Kreis hinzu. Hinzufügen und Einstellen ihrer Eigenschaften funktioniert gut.D3.js - Animierter Exit für verschachteltes Objekt
Aber ich kann nicht herausfinden, wie man mit dem Entfernen umgehen kann. Wie animiere ich ein verschachteltes Objekt beim Beenden?
// parents
var parents = svg.selectAll("parent").data(glyphs);
parents.enter()
.append("g")
.attr("class", "parent")
.attr("transform", function (glyph) {
return "translate(" + glyph.x + "," + glyph.y + ")";
});
// children
var circles = parents.append("circle");
circles
.attr("r", 0)
.attr("fill", function (glyph) { return glyph.color; });
// animated entry
circles.transition()
.attr("r", function (glyph) { return glyph.radius; });
Hier ist der Teil, der nicht funktioniert. Ich bin mir nicht sicher, wie ich die Kinder beim Verlassen animieren soll.
// animate exit
circles
.exit() // <-- not valid
.transition()
.duration(250)
.attr("r", 0);
parents
.exit()
.transition()
.delay(250)
.remove();
Kann mir jemand Tipps geben oder auf ein gutes Beispiel hinweisen?
statt Kreise .exit(), versuche den Übergang auf eltern.exit(). –
Ok, ich sehe, du machst das schon. Sie können versuchen, eltern.selectAll ('g'). Transition(). Duration() ... remove() Aber tun Sie es, bevor Sie die Eltern entfernen. –