2015-05-25 3 views
0

Привет, ребята, я получил обновление в своей проблеме ........ проблема с автоматической настройкой высоты уже решить но другая проблема существует, как вы можете увидеть в моем образце, если нажать на узел, отрегулировать высоту своего ребенка перекрытия него .... мы можем использовать эту jsfiddle для справки http://jsfiddle.net/elviz/Ge58Q/13/как отрегулировать высоту прямоугольника, чтобы содержать текст внутри него в дереве d3

также мне нужно вырезать мой текст, если он превышают 120 символов, другой будет занимать отрегулированную высоту узла .....

это как регулировать высоту

  nodeEnter.append("rect") 
      .attr("y", -barHeight/2) 
      .attr("height", function(d){ 
      if(d.name.length < 120){ 
       return barHeight; 
      }else if(d.name.length > 120){ 
       return barHeight * 2; 
      } 
      }) 
      .attr("width", barWidth) 
      .style("fill", color) 
      .on("click", click); 
+0

К сожалению, это не то, что вы можете легко сделать в SVG. [Этот пример] (http://bl.ocks.org/mbostock/7555321) может помочь. –

ответ

1

Это зависит от того, как вы хотите, чтобы текст был отформатирован внутри панели. Я пойду наивным образом.

Вы хотите сделать панель более крупной, а количество дополнительной высоты зависит от того, как долго ваша строка на самом деле.

  1. Узнайте, какая у вас максимальная ширина для бара и сколько символов будет в нем вписываться. Добавьте дополнительную высоту (кратную вашей первоначальной высоте), в зависимости от того, сколько текста у вас есть.
  2. Используйте переполнения, как в this question, чтобы соответствовать тексту внутри div.

Это немного связано, поэтому я надеюсь, что приведенное выше дает вам некоторые идеи о том, как исправить вашу проблему. Я заранее извиняюсь за то, что не использовал код для его решения.

+0

с использованием инопланетного объекта на самом деле решить мою проблему ........... – knives22

 Смежные вопросы

  • Нет связанных вопросов^_^