mirror of
https://github.com/DISARMFoundation/DISARMframeworks.git
synced 2024-12-21 21:45:27 -05:00
80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
|
|
||
|
var gridnames = ["#bluegrid", "#redgrid"];
|
||
|
|
||
|
for (gridname in gridnames) {
|
||
|
fillGrid(gridname)
|
||
|
}
|
||
|
function fillGrid(gridname) {
|
||
|
|
||
|
|
||
|
function gridData() {
|
||
|
var data = new Array();
|
||
|
var xpos = 1; //starting xpos and ypos at 1 so the stroke will show when we make the grid below
|
||
|
var ypos = 1;
|
||
|
var width = 50;
|
||
|
var height = 50;
|
||
|
var click = 0;
|
||
|
|
||
|
// iterate for rows
|
||
|
for (var row = 0; row < 10; row++) {
|
||
|
data.push( new Array() );
|
||
|
|
||
|
// iterate for cells/columns inside rows
|
||
|
for (var column = 0; column < 12; column++) {
|
||
|
data[row].push({
|
||
|
x: xpos,
|
||
|
y: ypos,
|
||
|
width: width,
|
||
|
height: height,
|
||
|
text: "test",
|
||
|
click: click
|
||
|
})
|
||
|
// increment the x position. I.e. move it over by 50 (width variable)
|
||
|
xpos += width;
|
||
|
}
|
||
|
// reset the x position after a row is complete
|
||
|
xpos = 1;
|
||
|
// increment the y position for the next row. Move it down 50 (height variable)
|
||
|
ypos += height;
|
||
|
}
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
|
||
|
var gridData = gridData();
|
||
|
// I like to log the data to the console for quick debugging
|
||
|
console.log(gridData);
|
||
|
|
||
|
var grid = d3.select("#bluegrid")
|
||
|
.append("svg")
|
||
|
.attr("width","610px")
|
||
|
.attr("height","510px");
|
||
|
|
||
|
var row = grid.selectAll(".row")
|
||
|
.data(gridData)
|
||
|
.enter().append("g")
|
||
|
.attr("class", "row");
|
||
|
|
||
|
var column = row.selectAll(".square")
|
||
|
.data(function(d) { return d; })
|
||
|
.enter().append("rect")
|
||
|
.attr("class","square")
|
||
|
.attr("x", function(d) { return d.x; })
|
||
|
.attr("y", function(d) { return d.y; })
|
||
|
.attr("width", function(d) { return d.width; })
|
||
|
.attr("height", function(d) { return d.height; })
|
||
|
.style("fill", "#fff")
|
||
|
.style("stroke", "#222")
|
||
|
.on('click', function(d) {
|
||
|
d.click ++;
|
||
|
if ((d.click)%4 == 0 ) { d3.select(this).style("fill","#fff"); }
|
||
|
if ((d.click)%4 == 1 ) { d3.select(this).style("fill","#2C93E8"); }
|
||
|
if ((d.click)%4 == 2 ) { d3.select(this).style("fill","#F56C4E"); }
|
||
|
if ((d.click)%4 == 3 ) { d3.select(this).style("fill","#838690"); }
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|