1
今天我來給你另一個D3.js問題。衝突過渡
我有一個簡單的柱狀圖。 當鼠標懸停一個欄時,會在其上顯示一個字符串。 今天早上,我添加了一個新的轉換,改變了欄的背景顏色。
現在,問題如下: 如果更改background-color的.transition位於顯示字符串的位置下方,則只有背景色會更改,否則不顯示該字符串。 如果顯示字符串的.transition位於改變背景顏色的下方,則只會顯示字符串,而不會更改顏色。
這裏有一個的jsfiddle:http://jsfiddle.net/QbGRE/1/
d3.selectAll("div.bar")
.on("mouseover", function(d) {
d3.select(this)
.transition().duration(300)
.style("background-color", "#EE3B3B");
})
.on("mouseout", function(d) {
d3.select(this)
.transition().duration(300)
.style("background-color", "DarkRed");
});
d3.selectAll("div.line")
.append("div")
.attr("class","bar")
.style("width", function(d){return d.occurrence /10 + "px";})
.on("mouseover", function(d) {
d3.select(this)
.append("text").style("pointer-events", "none")
.text(function(d){return d.occurrence + " occurences";});
})
.on("mouseout", function(d) {
d3.select(this)
.select("text").remove();
});
謝謝大家的幫助,D3-精明的人
工程就像一個魅力,謝謝拉爾斯! 如果我可能會問,爲什麼我們需要寫'd3.select(this)'兩次? – basbabybel
在這種情況下,您需要這樣做,因爲您所做的選擇不同,不會讓您鏈接它們。 –