0
我想构建包含8-10行的网页,它在滑块移动时展开。所以,基本上它应该是一个顶部的滑块和它下面的一些行 - 当我移动滑块时,我想要同时移动所有行来扩大或仅增加宽度。当我向下移动滑块时减少。以下是目前的代码:使用D3使滑块在水平条形图上工作
$("#slider").slider({
max: 850
});
$("#slider").slider({
min: 30
});
$("#slider").slider({
slide: function (event, ui) {
var selection = $("#slider").slider("value");
console.log(selection);
//Width and height
var w = 500;
var h = 50;
//Data
var dataset = [];
dataset.push(selection);
console.log(dataset);
var rectangle = svg.selectAll("rect")
.data(dataset);
rectangle
.enter()
.append("rect");
rectangle.attr("height", 20)
.attr("width", function (d) { console.log('d is ' + d);
return d;
})
.attr("x", function (d) {
return 20;
})
.attr("y", function (d) {
return 20;
});
var w1 = 500;
var h1 = 50;
var dataset1 = [];
dataset1.push(selection);
console.log(dataset1);
var rectangle1 = svg.selectAll("rect1")
.data(dataset1);
rectangle1
.enter()
.append("rect");
rectangle1.attr("height", 20)
.attr("width", function (d) { console.log('d is ' + d);
return d;
})
.attr("x", function (d) {
return 20;
})
.attr("y", function (d) {
return 50;
});
var w2 = 500;
var h2 = 50;
var dataset2 = [];
dataset2.push(selection);
console.log(dataset2);
var rectangle2 = svg.selectAll("rect2")
.data(dataset2);
rectangle2
.enter()
.append("rect");
rectangle2.attr("height", 20)
.attr("width", function (d) { console.log('d is ' + d);
return d;
})
.attr("x", function (d) {
return 20;
})
.attr("y", function (d) {
return 80;
});
}
});
//Create SVG element
var svg = d3.select("body")
.append("svg")
.attr("width", 500)
.attr("height", 300);
嗨,马克, 感谢这个完美的工作,有没有什么办法让每行的转换速率不同,并为它们提供不同的最小值和最大值。 –