Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery D3.js树-第一个节点上的非常长的文本_Jquery_D3.js_Tree_Data Visualization_Nvd3.js - Fatal编程技术网

Jquery D3.js树-第一个节点上的非常长的文本

Jquery D3.js树-第一个节点上的非常长的文本,jquery,d3.js,tree,data-visualization,nvd3.js,Jquery,D3.js,Tree,Data Visualization,Nvd3.js,如果我的D3树的父节点很长,文本将被剪切。 用这条线我可以调整树的x坐标 .attr("transform", "translate(40, 0)"); 但是。。。是否可以根据第一个节点的长度更改此坐标40,0? 多谢各位 我的JSON类似于: var treeData = {"name" : "Text very long", "children" : [ {"name" : "A1" }, {"name" : "A2" }, {"name" : "A3", "children": [ {"

如果我的D3树的父节点很长,文本将被剪切。 用这条线我可以调整树的x坐标

.attr("transform", "translate(40, 0)");
但是。。。是否可以根据第一个节点的长度更改此坐标40,0? 多谢各位

我的JSON类似于:

var treeData = {"name" : "Text very long", "children" : [
{"name" : "A1" },
{"name" : "A2" },
{"name" : "A3", "children": [
{"name" : "A31", "children" :[
{"name" : "A311" },
{"name" : "A312" }
]}] }
]};
JSFIDLE示例: 您可以添加以下内容:

    var transform;
    var size=treeData.name.length;
    if((size>1)&&(size<=5)){transform=10}
    if((size>5)&&(size<=10)){transform=100} //YOU HAVE TO ADD MORE STATEMENTS BASED ON YOUR NEEDS
....


    var vis = d3.select("#viz").append("svg:svg")
    .attr("width", 400)
    .attr("height", 300)
    .append("svg:g")
    .attr("transform", "translate("+transform+", 0)");
并根据您的需要调整您的if声明


我有很多不同的树,有很长或很短的节点值,我不能设置为100或其他数字。我需要找出节点的长度。节点的长度设置为var size。然后根据这一点,您可以使用多个if语句设置var转换如果您不更改字体大小和样式,您可以简单地使用以下公式:var transform=treeData.name.length*8;。乘数将根据字体样式和大小而变化。否则,这是一个看似无辜的主题,只是…将body{font:normal 14px Verdana;}添加到上面的演示中,看看我的意思。我还假设您只关心根节点。我认为这个问题的答案将有助于满足需要。