我如何包装长文本标签与D3.js
How can I wrap long text labels with D3.js?
我使用D3
创建了一个node-tree
,并想了解如何包装太长的文本。
nodeUpdate.select("text")
.text(function(d) {
if(d.name == "root"){
return "";
} else {
return d.name;
}
})
.style("font-family", "Verdana")
.style("fill-opacity", 1);
如果d.name太长,我希望它填满几行而不是一行。我找到了这个http://bl.ocks.org/mbostock/7555321,但我似乎不明白这是如何工作的,我当然不明白"包装"函数是如何得到它的输入的?在这个例子中,调用wrap函数时没有参数。
来自http://bl.ocks.org/mbostock/7555321的代码有两个关键部分:
调用wrap() done
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis)
.selectAll(".tick text")
.call(wrap, x.rangeBand());
需要一个文本元素和一个宽度,就像
一样node.append("text")
// Make sure to have a text element
.text(function(d) {
return d.name;
})
.call(wrap, 50);
这里令人困惑的部分是调用语句适用于当前选择,如.tick text
或所有节点。
第二部分是必需的text.text()
,否则它不起作用。
function wrap(text, width) {
text.each(function() {
var text = d3.select(this),
words = text.text().split(/'s+/).reverse(),
相关文章:
- 仅当变量有值时才显示D3文本标签
- 如何在 JavaScript 中更改文本标签的堆栈顺序
- 如何在javascript中使用svg文本标签
- 如何在D3中获得可缩放Icicle布局中文本标签的旋转
- 在d3.js中添加文本标签以强制定向图链接
- 章节文本标签没有't显示在D3.JS向下钻取饼图中
- 堆积条形图标签-D3
- 在每个条形图的中间添加文本标签&鼠标悬停事件
- x 轴文本标签未与 D3.js 中的条形对齐
- 在 D3.js折线图中使用 IMG 而不是文本标签
- 如何在 d3 中动态更新文本标签
- D3 强制布局与文本标签和图标
- 当节点太小时,如何在 d3 中隐藏文本标签
- d3基于值的文本标签格式
- 启动d3强制布局折叠,文本标签重复
- D3自定义文本标签轴
- 不能在d3应用程序的文本标签上添加引导弹出窗口
- 我如何包装长文本标签与D3.js
- 使用d3.js将文本标签添加到饼图时遇到问题
- 如何定位文本标签在一个Sunburst图表与d3.js