这些方法的优缺点是什么?

时间:2017-01-11 09:34:45

标签: d3.js

这两种方法的优缺点是什么?什么控制条形物飞入的方向,例如从上到下或从左到右?为什么没有bar.exit()。remove()使用Option 2?

选项1 https://jsfiddle.net/2523onr3/ 选项2 https://jsfiddle.net/sjp700/2523onr3/3/

bar.exit().remove()

svg.selectAll(".bar").remove();

1 个答案:

答案 0 :(得分:1)

这里有两种截然不同的方法。

第一个选项:

bar.exit().remove()

是一个正确的“退出”选择。这就是它的作用:

鉴于您的更新选择......

var bar = svg.selectAll(".bar")
    .data(dataset, function(d) {
        return d.label;
    });

...您的退出选择会将数据与所选DOM元素进行比较。如果元素多于数据,则额外元素(即没有数据的元素)将填充此选择。然后,当您执行remove()时,删除此选择中的元素。

在执行remove()之前,您可以使用退出选择进行任何转换:向右,向左,向上移动,更改颜色,更改不透明度等等。因此,控制“哪个条形图“飞行”,不仅在退出选择中,而且在输入和更新选择中也是如此。

另一方面,你的第二个选择......

svg.selectAll(".bar").remove();

...只需选择一个名为bar的类(它可以是圆形,文本,矩形,五边形,无关紧要......)并删除该类的所有元素