2013-05-29 66 views

回答

5

犯錯誤的一對中的代碼行是行65:

piece.append("g").attr("class", "label").append("text").style("opacity", 0); 

和線路93:

g.selectAll(".label") 
    .data(function(d) {return d;}) 
    .transition() 
    .duration(500) 
    // ... 
    .select('text') 
    // ... 
    .style("opacity", 1) 

cancel this transition on text上線114通過啓動一個新的過渡:

  g.selectAll(".label") 
      .select("text") 
      .transition() 
      .duration(500) 
      // ... (opacity is not changed here) 

因此,textopacity保持爲零。您可以檢查DOM,看看確實存在text元素(即不會被吹掉),但只是不透明度爲零。這是D3v2.7和D3v3之間的行爲變化。

現在有很多方法可以根據您最初想要的行爲來糾正這種情況。其中一種方式是這樣的:http://jsfiddle.net/zvPB6/其中伸直標籤與其他轉換同步。

如果爲straightening想要一個.delay(500),那麼你可能要聽的end事件,爲了不耽誤所有text就是全部過渡開始一個新的轉變。

+0

我確實知道元素仍然存在,但是看到沒有「文本」值。我認爲後面的過渡在它設置「文本」屬性之前取消了先前的過渡......是否正確?而且,你的小提琴正是我要拍的。謝謝! –

+0

很高興能夠提供幫助,是的,取消的轉換將解釋'text'元素缺失的'textContent'。 –

相關問題