Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js具有多个过渡的sunburst_Javascript_D3.js_Transition_Sunburst Diagram - Fatal编程技术网

Javascript D3.js具有多个过渡的sunburst

Javascript D3.js具有多个过渡的sunburst,javascript,d3.js,transition,sunburst-diagram,Javascript,D3.js,Transition,Sunburst Diagram,我一直试图用..来修改这个例子 我遇到了一个问题,即两个转换的组合不会产生预期的结果。如果首先单击某个节点进行放大,然后触发大小/计数转换,则应显示的节点将不会正确显示 我的解决方案是,如果图形已放大,则避免触发大小/计数转换:我通过模拟单击根节点(缩小)然后更改大小/计数来重置sunburst。这种方法确实有效,但视觉效果不是很令人满意。这是我正在测试的两种方法之一:图形重置和单选按钮“更改”事件触发的大小/计数转换 撇开实现选项(在同一事件或不同事件上触发转换)和浏览器问题(使用不同结果尝试

我一直试图用..来修改这个例子

我遇到了一个问题,即两个转换的组合不会产生预期的结果。如果首先单击某个节点进行放大,然后触发大小/计数转换,则应显示的节点将不会正确显示

我的解决方案是,如果图形已放大,则避免触发大小/计数转换:我通过模拟单击根节点(缩小)然后更改大小/计数来重置sunburst。这种方法确实有效,但视觉效果不是很令人满意。这是我正在测试的两种方法之一:图形重置和单选按钮“更改”事件触发的大小/计数转换

撇开实现选项(在同一事件或不同事件上触发转换)和浏览器问题(使用不同结果尝试Firefox和Chrome)不谈,问题在于两个转换似乎重叠。在第二个中使用.delay()没有帮助

视觉效果是第二个过渡,而不是一个单一的平滑过程,它似乎立即进入最后阶段,然后返回到初始阶段,并从一开始就平滑地播放过渡

欢迎任何指点或建议。。。谢谢

// Size/count radio-buttons with reset 1:
// dispatch both transitions on same event
d3.selectAll("input#size1, input#count1")
    .on("change", function() {
    // reset
    var root_node = d3.select("#root_node");
    var check = simulateClick(root_node[0][0]);
    // size/count
    if (check === true) {
        var change_value = this.value;
        path.data(partition.value(function(d) {
            if (change_value==="size") { return d.size; }
            else if (change_value==="count") { return 1; }
        }))
        .transition()
        .delay(400)
        .duration(600)
        .attrTween("d", arcTweenSwitch);
    }
});