-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
86 lines (69 loc) · 2.35 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//changes class of selected div to change color.
var selector = document.getElementById("selector");
var slider = document.getElementById("slider");
value = "16";
function getElemId(obj) {
let selectedSquare = obj;
selectedSquare.setAttribute("class", "permanent-color");
};
function clearDiv() {
let gridNode = document.getElementById("containerID");
gridNode.querySelectorAll('*').forEach(n => n.remove());
};
//creates Divs. Called in html.
function buildDivs(value) {
function createDiv(value) {
var num = 0;
let divSuffix = "-" + num++;
gridDimensions = value * value;
//div held in gridDiv
let gridDiv = document.createElement("div");
gridDiv.setAttribute("class", 'grid-item');
gridDiv.setAttribute("id", "square" + divSuffix);
// console.log("There are "+ gridDimensions + " divs");
gridDiv.style.backgroundColor="white";
gridDiv.setAttribute("onmouseenter", "getElemId(this)");
let divClass = document.getElementsByClassName("grid-container")[0];
divClass.appendChild(gridDiv);
};
//clears extra divs.
if ( value <= 100 ) {
clearDiv();
gridDimensions = value * value;
for ( let i = 0; i < gridDimensions; i++ ) {
createDiv(value);
}
}
else if ( value > 100) {
}
else {
console.log("nothing selected, returned to default");
}
};
// values pass into css at root
function getDimensions(value) {
value = window.prompt("Enter a number", "");
if (value <= 100) {
// change default to prompt value
changeGridSize(value);
}
else if ( value = "" || value === null || value === "null" ) {
console.log("NO VALUE SELECTED");
}
else {
alert("Please select a value under 100");
}
};
function changeGridSize(value) {
slider.value = value;
gridDimensions = value * value;
cssHeight = "repeat(" + value + ', 1fr)';
cssWidth = "repeat(" + value + ', 1fr)';
cssDimensions = cssHeight +" / " + cssWidth;
let container = document.getElementById("containerID");
container.style.setProperty('grid-template', cssDimensions);
buildDivs(value);
};
slider.addEventListener("change", () => {
changeGridSize(slider.value);
});