-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
69 lines (59 loc) · 1.83 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
document.addEventListener("DOMContentLoaded", () => {
const clearBtn = document.getElementById("clear");
const eraserBtn=document.getElementById("eraser");
const colorBtn=document.getElementById("BW");
const resizeBtn=document.getElementById("resize");
const grid = document.getElementById('grid');
let size=16;
let mouseDown = false;
let currentMode='BW';
document.body.onmousedown = () => (mouseDown = true);
document.body.onmouseup = () => (mouseDown = false);
function setupSize()
{
let aNumber = Number(window.prompt("Enter the New Size", ""));
if(aNumber>100)
{
aNumber=100;
}
size=aNumber;
reloadGrid();
}
function setupCurrentMode(newMode)
{
currentMode=newMode;
}
function changeColor(e)
{
if (mouseDown && currentMode=='BW') {
e.target.style.backgroundColor = '#333333';
}
else if(mouseDown && currentMode=='eraser')
{
e.target.style.backgroundColor='#FFFFFF';
}
}
function reloadGrid()
{
console.log("Check");
grid.innerHTML='';
setupGrid();
}
function setupGrid()
{
grid.style.gridTemplateColumns=`repeat(${size},1fr)`;
grid.style.gridTemplateRows=`repeat(${size},1fr)`;
for(let i=0;i<size*size;i++)
{
const gridElement=document.createElement('div');
gridElement.classList.add('grid-element');
gridElement.addEventListener('mouseover', changeColor);
grid.appendChild(gridElement);
}
}
clearBtn.onclick = () => reloadGrid();
eraserBtn.onclick= () => setupCurrentMode('eraser');
colorBtn.onclick= () => setupCurrentMode('BW');
resizeBtn.onclick= () => setupSize();
setupGrid();
});