Для каждого элемента данных я добавляю группу (g class = "parent") с кругом в ней. Их добавление и настройка их свойств отлично работают.D3.js - Анимированный выход для вложенного объекта
Но я не могу понять, как справиться с удалением. Каков способ анимации вложенного объекта при выходе?
// 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; });
Это часть, которая не работает. Я не уверен, как оживить детей при выходе.
// animate exit
circles
.exit() // <-- not valid
.transition()
.duration(250)
.attr("r", 0);
parents
.exit()
.transition()
.delay(250)
.remove();
Может ли кто-нибудь предложить несколько советов или указать мне хороший пример?
вместо кругов .exit(), попробуйте переход на parent.exit(). –
Хорошо, я вижу, вы уже это делаете. Вы можете попробовать parent.selectAll ('g'). Transition(). Duration() ... remove() Но сделайте это, прежде чем удалять родителей. –