我的场景是这样的:我有一个带有选项的选择框和一个可爱的D3布局可视化。
我想使用这些选项来淡入/淡出我的可视化的某些部分。在这种特殊情况下,我使用jQuery:
$("select.filter.tag").change(function() {
var cls = "."+$(this).val();
if(cls != "."){
d3.selectAll(".node:not("+cls+"), .link:not("+cls+")").transition()
.duration(500)
.style("opacity", 0);
d3.selectAll(".node"+cls+", .link"+cls).transition()
.duration(500)
.style("opacity", 1);
}
else{
d3.selectAll(".node, .link").transition()
.duration(500)
.style("opacity", 1)
}
});然而,这并不会淡入/淡出我的可视化中的任何部分。某些部分在一瞬间就消失了(这是在最新版本的Firefox中,代码实际上可以在Chrome和Safari上运行)
预览:https://dl.dropbox.com/u/41566165/question/index.html
有谁能帮上忙吗?
发布于 2013-05-13 23:51:43
您应该用jQuery内置的.duration/.style替换您的transition()fadeIn(500)fadeOut(‘opacity’,1),并使用适当的动画时间(毫秒)。
查看jQuery FadeOut documentation
淡出示例:
$('.node:not("+cls+"), .link:not("+cls+")').fadeOut(900);淡入与淡出非常相似:
$('.node'+cls+', .link'+cls').fadeIn(900);https://stackoverflow.com/questions/13031517
复制相似问题