gpt4 book ai didi

d3.js 过渡结束事件

转载 作者:行者123 更新时间:2023-12-03 14:54:18 25 4
gpt4 key购买 nike

我正在对 selectAll() 返回的一组节点应用转换.我认为结束事件会在所有转换完成后触发,但是 each("end",function)在每次转换结束时被调用。

那么有没有办法设置一个回调,该回调将在所有选定节点的转换完成后调用?

我应该使用 call为了这?但我没有看到它在文档中的任何地方用作结束回调。

我也可以在里面运行一个柜台each打回来。但是有什么方法可以知道还有多少节点等待完成转换?或所选节点组中当前节点的索引?

我在链中有两个 select() 调用,如 selectAll('.partition').selectAll('.subpartition')因此传递给每个回调的索引参数将旋转 n 次。

最佳答案

据我所知,没有内置的方法可以知道小组的最后一次过渡何时完成,但有一些方法可以解决。我多次使用的一种方法是维护已完成的转换计数。

var n = 0;

d3.selectAll('div')
.each(function() { // I believe you could do this with .on('start', cb) but I haven't tested it
n++;
})
.transition()
.on('end', function() { // use to be .each('end', function(){})
n--;
if (!n) {
endall();
}
})

function endall() {
// your end function here
}

以下是相关文档的链接:
  • https://github.com/d3/d3-transition#control-flow
  • https://github.com/d3/d3-transition#the-life-of-a-transition
  • 关于d3.js 过渡结束事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024447/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com