Ich bin noch ein Anfänger und versuche zu verstehen, wie ich die Rasterfarben für mein Etch-a-Sketch-Projekt ändern kann. Eine Anleitung wäre wunderbar.
Ich kann die Farbe des Hintergrunds der Seite ändern, ich kann auch die Farbe des Rasterrahmens ändern, jedoch nicht die Lücke zwischen den Rastern. Ich kann auch nicht trainieren, wie man eine Spur hinterlässt. CSS erlaubt nur Animation und Hover, was keine dauerhafte Spur hinterlässt. Also, ich kenne eine Funktion, die den Wert speichert.
Kann mir bitte jemand hervorheben, welcher Teil meines Codes falsch ist und warum er falsch ist und wenn Sie eine Online-Ressource haben, die ich lesen kann, damit ich die Funktion zum Hinterlassen einer Spur und zum Ändern der Farbe in jedem Raster erstellen kann, wäre ich für immer dankbar .
Hier ist mein Code:
//first div
let container = document.createElement('div')
container.setAttribute('id', 'container');
container.classList.add("grid");
document.body.appendChild(container);
//second div
let containerGrid = document.createElement('div')
containerGrid.setAttribute('id', 'containerGrid');
containerGrid.classList.add("grids");
document.body.appendChild(containerGrid);
//button div
let buttonDiv = document.createElement('div')
buttonDiv.setAttribute('id', 'button');
buttonDiv.classList.add("button");
document.body.appendChild(buttonDiv);
//buttons//
const eraserButton = document.createElement('button');
eraserButton.textContent ="Eraser";
eraserButton.classList.add ("Eraser")
eraserButton.setAttribute('id', 'Eraser');
const clearButton = document.createElement('button');
clearButton.classList.add ("Clear")
clearButton.setAttribute('id', 'Clear');
clearButton.textContent ="Clear";
buttonDiv.appendChild(eraserButton);
buttonDiv.appendChild(clearButton);
//hover color event
function random (number) {
return Math.floor(Math.random() * (number +1));
}
const input = document.querySelectorAll('#col');
function rainbowColor () {
const rndCol= 'rgb(' + random(255) + ',' + random(255) +',' + random (255) + ')';
containerGrid.col.style.BackgroundColor = rndCol;
}
input.onmouseover = (rainbowColor);
/*
const inputOne = document.querySelector('#color-picker');
inputOne.addEventListener('mouseover', e => {
e.target.classList.add = ('color-picker');
});
const inputTwo = document.querySelector('#black-pick');
inputTwo.addEventListener('mouseover', e => {
e.target.classList.add = ('black-pick');
});
*/
const btn = document.querySelector('#Eraser');
btn.addEventListener('click', function (e) {
console.log(e);
});
const btnTwo = document.querySelector('#Clear');
btn.addEventListener('click', function (e) {
console.log(e);
});
//make grid 16*16
function makeCols (col) {
for (let i = 0; i < 16; i++) {
const colDivs = document.createElement('div');
colDivs.setAttribute('id', 'col');
colDivs.classList.add('cols');
colDivs.textContent ="";
colDivs.style.border = ('solid');
colDivs.style.display= ('grid');
colDivs.style.padding = ('5px');
containerGrid.appendChild(colDivs);
}
}
makeCols (16);
function makeRows (rows) {
for (let j = 0; j < 16; j++) {
const rowDivs = document.createElement('div');
rowDivs.setAttribute('id', 'rows');
rowDivs.classList.add('rows');
rowDivs.style.border = ('solid');
rowDivs.style.display= ('grid');
rowDivs.style.padding = ('5px');
containerGrid.appendChild(rowDivs);
}
}
makeCols (16);
makeRows(16);
.grid {
width:500px;
}
.grids {
display: grid;
justify-content:center;
align-items:center;
grid-template-columns: repeat(8,1fr);
grid-auto-rows:repeat(8, 1fr);
padding: 50px 50px;
margin-left:150px;
height:100px;
width:200px;
}
.rows {
height:10px;
width:10px;
grid-column-gap:10px;
}
.cols {
height:10px;
width:10px;
}
.palette.cols:hover {
background-color:rrggbb;
}
.col {
background-color:black;
}
.rows {
background-color: red, black, blue, yellow, purple, green;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Etch-a-Sketch</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id ="color-picker" class = "palette">
<input type="color" name="Rainbow" id="rainbow-colors" value= "#e66465">
<label for="Rainbow">Rainbow</label>
</div>
<div id = "black-pick" class = "black-color">
<input type="color" name="Black" id="black-color" value="#rrggbb">
<label for="Black">Black</label>
</div>
<script src="app.js"></script>
</body>
</html>
In wenigen Schritten behoben
onmouseover
nachdem Sie die HTML-Elemente erstellt haben.onmouseover
Verwenden Sie im Handler den Ereignisparameter, um das Element abzurufenbackgroundColor
, Kleinbuchstabe first.cols
Für alles andere siehe Snippet unten.
//first div
let container = document.createElement('div')
container.setAttribute('id', 'container');
container.classList.add("grid");
document.body.appendChild(container);
//second div
let containerGrid = document.createElement('div')
containerGrid.setAttribute('id', 'containerGrid');
containerGrid.classList.add("grids");
document.body.appendChild(containerGrid);
//button div
let buttonDiv = document.createElement('div')
buttonDiv.setAttribute('id', 'button');
buttonDiv.classList.add("button");
document.body.appendChild(buttonDiv);
//buttons//
const eraserButton = document.createElement('button');
eraserButton.textContent ="Eraser";
eraserButton.classList.add ("Eraser")
eraserButton.setAttribute('id', 'Eraser');
const clearButton = document.createElement('button');
clearButton.classList.add ("Clear")
clearButton.setAttribute('id', 'Clear');
clearButton.textContent ="Clear";
buttonDiv.appendChild(eraserButton);
buttonDiv.appendChild(clearButton);
//hover color event
function random (number) {
return Math.floor(Math.random() * (number +1));
}
function rainbowColor (e) {
const rndCol= 'rgb(' + random(255) + ',' + random(255) +',' + random(255) + ')';
e.target.style.backgroundColor = rndCol;
}
/*
const inputOne = document.querySelector('#color-picker');
inputOne.addEventListener('mouseover', e => {
e.target.classList.add = ('color-picker');
});
const inputTwo = document.querySelector('#black-pick');
inputTwo.addEventListener('mouseover', e => {
e.target.classList.add = ('black-pick');
});
*/
const btn = document.querySelector('#Eraser');
btn.addEventListener('click', function (e) {
console.log(e);
});
const btnTwo = document.querySelector('#Clear');
btn.addEventListener('click', function (e) {
console.log(e);
});
//make grid 16*16
function makeCols (col) {
for (let i = 0; i < 16; i++) {
const colDivs = document.createElement('div');
colDivs.setAttribute('id', 'col' + i);
colDivs.classList.add('cols');
colDivs.textContent ="";
colDivs.style.border = ('solid');
colDivs.style.display= ('grid');
colDivs.style.padding = ('5px');
containerGrid.appendChild(colDivs);
}
}
makeCols (16);
function makeRows (rows) {
for (let j = 0; j < 16; j++) {
const rowDivs = document.createElement('div');
rowDivs.setAttribute('id', 'row' + j);
rowDivs.classList.add('rows');
rowDivs.style.border = ('solid');
rowDivs.style.display= ('grid');
rowDivs.style.padding = ('5px');
containerGrid.appendChild(rowDivs);
}
}
makeCols(16);
makeRows(16);
var inputs = document.querySelectorAll('.cols');
for(var k=0; k<inputs.length; k++) {
inputs[k].onmouseover = rainbowColor;
}
.grid {
width:500px;
}
.grids {
display: grid;
justify-content:center;
align-items:center;
grid-template-columns: repeat(8,1fr);
grid-auto-rows:repeat(8, 1fr);
padding: 50px 50px;
margin-left:150px;
height:100px;
width:200px;
}
.rows {
height:10px;
width:10px;
grid-column-gap:10px;
}
.cols {
height:10px;
width:10px;
}
.palette.cols:hover {
background-color:rrggbb;
}
.col {
background-color:black;
}
.rows {
background-color: red, black, blue, yellow, purple, green;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Etch-a-Sketch</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id ="color-picker" class = "palette">
<input type="color" name="Rainbow" id="rainbow-colors" value= "#e66465">
<label for="Rainbow">Rainbow</label>
</div>
<div id = "black-pick" class = "black-color">
<input type="color" name="Black" id="black-color" value="#rrggbb">
<label for="Black">Black</label>
</div>
<script src="app.js"></script>
</body>
</html>
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen