我有一个 5x5 的网格,只要你点击它,每个盒子都会变成黑色或白色。这个网格模拟了熄灯游戏,到目前为止我只能改变我点击的盒子的颜色,但我还需要改变水平和垂直距离 1 长度的盒子的颜色。
我有一种感觉,我需要使用 javascript 将网格变成一个数组,但我不知道该怎么做。以下代码是我到目前为止所拥有的。
var grid = document.getElementsByClassName("box");
Array.from(grid).forEach(click => click.addEventListener("click", function changeColor() {
if (click.style.background === 'black') {
click.style.background = "white";
} else {
click.style.background = "black";
}
}));
body {
background-color: lightblue;
margin: 40px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 100px 100px 100px 100px;
grid-gap: 3px;
}
.box {
background-color: #fff;
padding: 50px;
}
<!DOCTYPE html>
<html>
<head>
<title>Lights Out Game</title>
<link href="lights_out.css" rel="stylesheet" type="text/css">
<script type="module" src="Lightsout.js?v=5"></script>
</head>
<body>
<h1>Lights Out</h1>
<button type="button">Reset board</button>
<div class="wrapper">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<article> Click on each box until all the boxes are black.</article>
</body>
心有法竹
相关分类