0
我做了一個小小的h-bar示例。 我想要的是能夠用鼠標調整任何欄的大小。 我通過關注 來選擇一個我想在開始調整大小時開始調整大小,甚至通過鼠標移動事件來結束大小調整。 事實上,它的工作原理,但只適用於第一個酒吧,我沒有看到酒吧調整大小,而我只是當我使鼠標,但只有當我amouse-up。 我在jsfiddle.net/Yves_49/jjj40cop/與D3.js中的酒吧交互
有一個小提琴這是我的代碼
function draw_2() {
var valueMax = 5;
var tab_val = new Array();
for (currentLine = 0; currentLine < 10; currentLine++) {
var tab_temp = new Array();
tab_temp['name'] = "name_" + currentLine;
tab_temp['value'] = Math.round(Math.random() * valueMax * 10)/10;
tab_val[currentLine] = tab_temp;
tab_temp.length = 0;
}
d3.select("body").selectAll("div.h-bar")
.data(tab_val)
.enter()
.append("div")
.attr("class", "h-bar")
.append("span");
d3.select("body").selectAll("div.h-bar")
.data(tab_val)
.attr("class", "h-bar")
.style("width", function(d) {
return (d.value * 100) + "px";
})
.style("background-color", function(d) {
return "rgb(" + (200 - Math.round(200 * d.value/valueMax)) + "," + (200 - Math.round(200 * d.value/valueMax)) + ",256)";
})
.select("span")
.text(function(d) {
return d.value;
});
d3.select("body").select(".h-bar")
.on("mouseover", function() {
d3.select(this)
.style("background-color", function() {
return "rgb(256,0,0)";
})
})
.on("mouseout", function(d) {
d3.select(this)
.style("background-color", function(d) {
return "rgb(" + (200 - Math.round(200 * d.value/valueMax)) + "," + (200 - Math.round(200 * d.value/valueMax)) + ",256)";
})
});
d3.select("body")
.on("mouseup", function() {
d3.select(this)
.select(".h-bar")
.style("width", function() {
return (d3.mouse(this)[0]) + "px";
})
.style("background-color", function() {
return "rgb(0,256,0)";
})
.select("span")
.text(function(d) {
return (Math.round(d3.mouse(this)[0]/10)/10);
});
});
伊夫