以下作品(圆圈将在提供的位置移动到新位置)
d3target .attr('cx',newCX ) .attr('cy',newCY )
但是这些没有:
d3target .transition() .attr('cx',newCY ) // .duration(1000) // Still doesn't work with or without the duration
而且也不是:(通过提供起始值as suggested by API docs)
d3target .attr('cx',originalCX ) .attr('cy',originalCY ) .transition() .attr('cx',newCY ) // .duration(1000) // Still doesn't work with or without the duration
圈子不动画,也不动.我们尝试手动将dur设置为1秒,以确保动画未完成或跳过,因为它太小,无法被注意或跳过等等.
我们已经尝试了许多可能性,为什么,所以任何想法,为什么或什么尝试是非常感激的.
基本信息供参考:
d3Target看起来如下,并且我们知道的是正确的,因为第一个代码块通过直接调整attrs而没有transition()调用而工作.
解决方法
首先将转换(转换方法返回)转换为变量,然后尝试使用console.log(transition_selection.empty()).如果这是虚假的,那么你知道你有转型的东西.
第二个尝试:transition_selection.each(‘start’,function(){console.log(‘started’);}).each(‘interrupt’,function(){console.log(‘interrup’);}) (‘end’,function(){console.log(‘ended’);});
这样,您将可以看到转换是否已经开始并被中断.
第三个尝试:transition.attr(‘cx’,function(d){console.log(‘attr got assigned’);)});
这样你就可以知道你为’cx’提供的值是否被读取.
实际上在同一个运行中尝试所有上述.所以你可以看到按什么顺序发生什么.
总是尝试命名你的过渡. d3traget.transition( ‘somename’)
这样就可以在同一选择上并行运行多个转换.如果在同一选择上运行多个“未命名”转换,则第二个转换将停止第一个转换.
希望我给你的任何一个帮助你解决你的问题.祝你好运!