当d3.attr(‘x’,y)做的时候,javascript – d3.transition().attr(‘x’,y)不起作用

前端之家收集整理的这篇文章主要介绍了当d3.attr(‘x’,y)做的时候,javascript – d3.transition().attr(‘x’,y)不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下作品(圆圈将在提供的位置移动到新位置)
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’)

这样就可以在同一选择上并行运行多个转换.如果在同一选择上运行多个“未命名”转换,则第二个转换将停止第一个转换.

希望我给你的任何一个帮助你解决你的问题.祝你好运!

原文链接:https://www.f2er.com/js/153983.html

猜你在找的JavaScript相关文章