D3的"空"选择有什么作用?

Pet*_*Qiu 4 javascript d3.js

我是D3的新手,最近看到这段代码,而有人正在创建一个过渡:d3.select({})d3.select({}).transition()等等.这似乎做了同样的事情d3.select([]).在控制台中,它显示为一个数组,但我仍然不确定它是做什么的.任何帮助将不胜感激,谢谢!

Mar*_*ark 5

我见过的唯一的地方就在这里.现在通常你会d3.select想要运行转换的对象.但是在链接的示例中,Bostock 不是在由不同DOM对象组成的svg上进行操作,而是在一个必须为过渡中的每个步骤擦除和重绘的画布上操作.因此,d3.select({}).transition()简单地成为一种简单的方法来启动他可以使用的通用转换.您应该注意,必须选择某些内容来创建转换,只是做d3.select().transition()不起作用,空对象(或空数组)允许它工作.

  • 值得注意的是,这将在每次调用时创建一个**新的**转换.我的第一个想法是使用[`d3.transition()`](https://github.com/d3/d3/wiki/Transitions#d3_transition)来创建转换.在这种情况下,它不会像人们想象的那样工作,因为它等同于`d3.select(document).transition()`,从而中断先前在`document`上开始的转换.当选择空对象以开始转换时,所有这些转换彼此独立,因此可以同时运行.@PeterQiu (2认同)