【发布时间】:2020-01-18 08:28:21
【问题描述】:
我正在构建一个类似于 Etch-a-Sketch 的交互式网格。我已经设置了网格,现在正尝试设置“悬停”效果,以便当鼠标经过网格 div 时,网格 div 会改变颜色,从而像笔一样在网格中留下(像素化的)轨迹。但我希望颜色根据单击的按钮而改变;即,当您悬停时,黑色按钮会留下黑色轨迹,彩虹会留下彩虹轨迹并重置会清除网格。
<head>
<title> Claudias Etch-A-Sketch</title>
<link rel= "stylesheet" href="style.css">
</head>
<body>
<section class="black">
<h1><center> Claudia Etch-A-Sketch!</center></h1>
</section>
<section>
<div class="buttons">
<button id="rainbow">Rainbow</button>
<button id="black">Black</button>
<button id="reset">Reset</button>
</div>
</section>
<section>
<div id="container"> </div>
</section>
</body>
<script src="javascript.js"></script>
const container = document.getElementById("container");
const btnReset = document.getElementById("reset");
const btnBlack = document.getElementById("black");
const btnRainbow = document.getElementById("rainbow");
function makeRows(rows, cols) {
container.style.setProperty('--grid-rows', rows);
container.style.setProperty('--grid-cols', cols);
for (c = 0; c < (rows * cols); c++) {
let cell = document.createElement("div");
container.appendChild(cell).className = "grid-item";
};
};
makeRows(16, 16);
:root {
--grid-cols: 1;
--grid-rows: 1;
}
#container {
display: grid;
grid-template-rows: repeat(var(--grid-rows), 1fr);
grid-template-columns: repeat(var(--grid-cols), 1fr);
}
.grid-item {
height: 30px;
width: 30px;
border: 1px solid #ddd;
text-align: center;
}
.black {
background-color: black;
}
h1 {
color: white;
}
【问题讨论】:
-
您已经在您的 HTML 中包含了 jQuery,您是否打算使用它? div 的背景只能使用 CSS 在悬停时改变。
-
它对我们来说是 JavaScript 事件 mouseover 还是上面提到的 cmets?
-
我不打算使用 jQuery,当我决定时忘记在 HTML 中删除它。现已删除。
-
已删除 jquery 标签
标签: javascript html css hover