如何在D3中动画文本锚
how to animate text anchor in 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
。但我不知道该怎么做。
如有任何帮助,不胜感激
最好的方法确实是自己居中文本,而不是使用和动画text-anchor
。这相对简单,你只需要确定文本的宽度并将其偏移一半长度到中心:
.attr("dx", function() {
if(opts.textAnchor == "start") {
return 0;
} else if(opts.textAnchor == "middle") {
return -this.getBBox().width/2 + "px";
}
})
相关文章:
- 动画文本淡入淡出
- 创建一致的简单横幅文本动画
- 悬停在动画文本上后,文本淡入淡出不会返回
- 动画文本阴影以淡入淡出
- css3动画文本居中对齐
- 如何将鼠标悬停在文本/图像上时触发动画文本
- 用于演示的表单字段中的动画文本输入
- 带jquery的动画文本切换
- 是否有一种方法来动画文本区域的不透明度与jQuery
- 动画文本滑动和替换为另一个文本使用jquery
- 动画文本颜色jQuery CSS悬停消失
- CSS动画文本不工作
- 如何用渐变颜色动画文本
- 动画文本慢慢地在列表中
- rapha 235;l:尝试将半动画文本添加到旋转器图形中
- 动画文本,循环通过数组的单词和颜色
- 动画文本区域,以适应文本区域的内容
- 我如何阻止Javascript动画文本重复
- 如何在D3中动画文本锚
- JQuery动画文本