Я пытаюсь создать сетку из элемента таблицы, а затем позволить пользователю раскрасить ее. Теперь я застрял в создании таблицы, я добавил l oop, который будет добавлять элемент строки и элемент ячейки, но по какой-то причине таблица не будет создана. Может кто-нибудь, пожалуйста, укажите мне в правильном направлении?
my HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Pixel Art Maker!</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Monoton">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Pixel Art Maker</h1>
<h2>Choose Grid Size</h2>
<form id="sizePicker">
Grid Height:
<input type="number" id="inputHeight" name="height" min="1" value="1">
Grid Width:
<input type="number" id="inputWidth" name="width" min="1" value="1">
<input type="submit">
</form>
<h2>Pick A Color</h2>
<input type="color" id="colorPicker">
<h2>Design Canvas</h2>
<table id="pixelCanvas"></table>
<script src="designs.js"></script>
</body>
</html>
, а my javascript:
// Select color input
var color = document.getElementById("colorPicker").value;
// Select size input
var height = document.getElementById("inputHeight").value;
var width = document.getElementById("inputWidth").value;
// When size is submitted by the user, call makeGrid()
document.querySelector('#sizePicker').addEventListener('submit', function (evt) {
if (evt.target.nodeName.toLowerCase() === 'submit') { // ← verifies target is desired element
makeGrid(height,width);
}
});
//add addEventListener to color eatch cell
function makeGrid(height,width) {
const mainTable = document.querySelector('#pixelCanvas');
for (let i = 0 ; i <= height ; i++){
mainTable.insertAdjacentHTML('afterend', document.createElement('tr'));
for (let x = 0; x <= width ; x++){
mainTable.insertAdjacentHTML('afterbegin',document.createElement('td'));
}
}
}
my css:
body {
text-align: center;
}
h1 {
font-family: Monoton;
font-size: 70px;
margin: 0.2em;
}
h2 {
margin: 1em 0 0.25em;
}
h2:first-of-type {
margin-top: 0.5em;
}
table,
tr,
td {
border: 1px solid black;
}
table {
border-collapse: collapse;
margin: 0 auto;
}
tr {
height: 20px;
}
td {
width: 20px;
}
input[type=number] {
width: 6em;
}