d3.js文字在旋转时消失
问题描述:
我已经打了半天似乎很简单的问题没有用,所以我很乐意从stackoverflow天才得到一些好建议。d3.js文字在旋转时消失
我在http://62.165.130.126/d3-question
演示我试图把它变成的jsfiddle但无法获得正确的库,希望这仍然可以让你在潜水。
问题是展示自身在旋转文字时d3.js javascript代码消失。或者实际上是旋转文本的一部分。
页面上的每一对酒吧应该有两行文字旋转45度(下坡),不要写在邻居。如果我不旋转文字,一切都可见(但重叠),但如果我这样做,只有第一对线是确定的。之后,第一个文本消失(或某些版本被几十个像素看似杂乱无章),但第二个文本恰好在它应该使用完全相同的代码结构的位置。我已经交换了价值观,问题与价值观无关,而与订单有关。
这里是我写的JavaScript中的主要代码。
$.each(data, function(a_key,a_val){
$.each(a_val, function(form_key,form_val){
$.each(form_val, function(person_key,person_val){
svg.append("rect")
.attr("x", start*2*width+width)
.attr("y", 420-person_val.val1/person_val.val1_max*400)
.attr("width", width-5)
.attr("height", person_val.val1/person_val.val1_max*400)
.style("fill", "red");
svg.append("rect")
.attr("x", start*2*width)
.attr("y", 420-person_val.val2/person_val.val2_max*400)
.attr("width", width-5)
.attr("height", person_val.val2/person_val.val2_max*400)
.style("fill", "green");
svg.append("text")
.attr("text-anchor", "start")
.attr("transform","translate(" + start*2*width+20 + ",430) rotate(45)")
.style("font-size","0.85em")
.text(person_val.pname);
svg.append("text")
.attr("text-anchor", "start")
.attr("transform","translate(" + start*2*width + ",430) rotate(45)")
.style("font-size","0.85em")
.text(person_val.ptype);
start++;
});
});
该应用程序只是一个真正的解决方案的样机,但应显示基本问题没有分心。每一对酒吧都应该有他们下面的描述文字。目前它们还没有被集中,但如果事情理清,那么改变应该是直截了当的。
任何人有任何想法如何纠正代码?
答
问题出在"translate(" + start*2*width+20 + ",430) rotate(45)"
的代码。 结果之一是translate(8020,430) rotate(45)
。 Javascript将20
转换为字符串。试着把大括号放在start*2*width+20
的表情。
谢谢,这是问题所在。愚蠢的我(后来很容易看到)。实际上,我在调用d3.js函数之前将该值存储为变量。 – hank