如何在d3.js中通过计算' index '值来增加动画延迟
How to add delay on animation by calculating `index` value in d3.js?
我在一个组中有2个元素,我使用selectAll
方法选择groups
。但我想在transition
上的子元素上添加一些延迟。正确的方法是什么?
My try is not working all:
var fadeHandler = function () {
d3.selectAll('.subAppGroup') //parent group
.each(function (d,i) {
console.log("hi", i); //i am getting index here.
})
.transition()
.delay((1000*1+=1)) //how to delay?
.duration(500)
.select('.subAppPath') //first child
.style('opacity', 1);
d3.selectAll('.subAppGroup')
.transition()
.delay((1000*1+=i)) //both not working
.duration(500)
.select('.subAppGroupDetail') //second child
.style('opacity', 1);
}
fadeHandler();
您只需要将逻辑放入函数中。I将是数组中该项的索引。在下面的示例中,元素0将延迟0ms,元素1将延迟100ms,依此类推。
...
.delay(function(d, i) {
return i * 100; // Or whatever you want the delay to be.
})
...
https://github.com/mbostock/d3/wiki/Transitions延迟编辑:要回答你下面的评论,试试这个。我认为这将工作,但很难说不知道你的数据看起来像什么。
var fadeHandler = function () {
d3.selectAll('.subAppGroup .subAppPath, .subAppGroup .subAppGroupDetail')
.transition()
.delay(function(d, i) {
return i * 100;
})
.duration(500)
.style('opacity', 1);
}
fadeHandler();
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 可以简化嵌套的延迟Q Promises解析吗
- 主干模板:index.jst.eco到index.jst.ejs
- 将 jQuery 代码添加到 Index.aspx 页面
- onclick函数需要双击,因为类分配延迟
- 更多延迟动画
- 对父作用域的指令更新延迟了一步
- 为JS函数添加延迟
- 带有延迟的循环每次应运行5次
- AngularJS-需要在index.html页面中访问来自服务的数据
- 更改基于它的Select OPTION's INDEX(Jquery)
- 关键帧之间的css3动画延迟
- 如何在有延迟的情况下对两个代码进行积分
- 尝试创建一个具有z-index的堆叠菜单'使用HTML5/CSS3/JS
- 如何为.css状态的更改添加延迟
- Angular.js延迟控制器初始化
- 在延迟时设置Whois脚本
- 如何在Javascript中延迟setInterval
- 如何在d3.js中通过计算' index '值来增加动画延迟