如何在D3中为文本锚定动画

圣战突厥

我正在尝试将词云转换为词表。我已经做到了,但是在动画文本上遇到了问题。因为词云text-anchor: middle用于文本定位,所以当我切换到使用的列表布局时,text-anchor: start随着动画开始,词会有点尖峰。请参阅下面的小提琴和相关代码:

jsFiddle

text.transition()
    .duration(1000)
    .attr("text-anchor", opts.textAnchor)
    .attr("transform", function(d) {
         return "translate(" + [d.x, d.y] + ")";
     })
     .style("font-size", function(d) {
          return d.size + "px";
     })

我认为,我应该手动计算每个文本位置并创建自己的居中文本,而不是text-anchor: middle但是我不确定该怎么做。

任何帮助,将不胜感激

拉尔斯·科特霍夫(Lars Kotthoff)

最好的方法的确是自己使文本居中,而不是使用动画text-anchor这是相对容易的,您只需要确定文本的宽度并将其偏移一半就可以居中:

.attr("dx", function() {
  if(opts.textAnchor == "start") {
    return 0;
  } else if(opts.textAnchor == "middle") {
    return -this.getBBox().width/2 + "px";
  }
})

在此处完成演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在d3中为元素设置动画以跟随圆弧的质心?

来自分类Dev

如何在d3中为路径及其点设置动画

来自分类Dev

如何在d3中为元素设置动画以跟随圆弧的质心?

来自分类Dev

在D3中动画包装文本

来自分类Dev

如何在r2d3中使用d3为轴过渡设置动画?

来自分类Dev

如何在r2d3中使用d3为轴过渡设置动画?

来自分类Dev

如何在d3 javascript中为SVG文本元素分配唯一ID

来自分类Dev

如何在 D3 中为文本 div 的特定部分着色?

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在d3中更改文本元素?

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在d3强制布局中添加文本?

来自分类Dev

在D3中为曲线图制作动画

来自分类Dev

如何在CSS中自动为文本突出显示动画?

来自分类Dev

如何在QGraphicsScene中定位和锚定文本?

来自分类Dev

如何限制d3中动画轴标签的位置?

来自分类Dev

如何在Unity3D中为2D云设置动画?

来自分类Dev

如何在D3中的文本中添加上标和下标

来自分类Dev

如何在d3中创建的图例中匹配文本标签

来自分类Dev

如何在d3中右对齐两个文本

来自分类Dev

如何在Java脚本D3中以(x,y)的固定坐标显示文本

来自分类Dev

如何在D3中将文本追加到div

来自分类Dev

如何在D3可缩放包布局中隐藏标签的重叠文本?

来自分类Dev

如何在d3中动态更新文本标签?

来自分类Dev

如何在D3鼠标悬停中添加文本?

来自分类Dev

如何在D3可缩放包布局中隐藏标签的重叠文本?

来自分类Dev

在d3 js中,如何在圆上附加其他文本作为工具提示

来自分类Dev

如何在d3中右对齐两个文本

来自分类Dev

如何在d3中用附带的文本更新条形图?

Related 相关文章

热门标签

归档