Я пытаюсь добавить множество ящиков с Javascript. Однако вместо добавления нескольких ящиков он просто заменяет первый. В идеале я хотел бы работать следующим образом: (1) Нажмите «Далее», чтобы создать цвет (2) Нажмите «Сохранить», чтобы создать окно ниже и отобразить выбранный цвет (3) Повторить, создав новый флажок, сохраняя предыдущий коробка (ы)
HTML:
<div id="displayColor"></div>
<div id="container">
<div id="controls">
<button id="previousColor">Previous</button>
<span id="saveColor"><button>Save Color</button></span>
<button id="nextColor">Next</button>
</div>
<p>Saved Colors</p>
<div class="savedColorBoxes"></div>
<script type="text/javascript" src="colorPicker.js"></script>
</body>
</html>
Javascript:
var colorDisplay = document.getElementById("displayColor");
var nextButton = document.getElementById("nextColor");
var saveButton = document.getElementById("saveColor");
var storedColors = []
var addNewBox = document.getElementsByClassName("savedColorBoxes")
nextButton.addEventListener("click", function(){
currentColor = randomColor()
displayColor.style.background = currentColor;
storedColors.push(randomColor());
return currentColor
});
saveButton.addEventListener("click", function(){
for(i = 0; i < addNewBox.length; i++){
// Add Box
addNewBox[i].classList.add("savedColorsBox")
// Update Color of the box to chosen
addNewBox[i].style.background = currentColor
}
});
function randomColor(){
//pick a "red" from 0 - 255
var r = Math.floor(Math.random() * 256);
//pick a "green" from 0 -255
var g = Math.floor(Math.random() * 256);
//pick a "blue" from 0 -255
var b = Math.floor(Math.random() * 256);
return "rgb(" + r + ", " + g + ", " + b + ")";
}
CSS:
body {
margin: 0;
background-color: black;
}
h1 {
text-align: center;
color: white;
}
#displayColor {
height: 420px;
background-color: rgb(232, 50, 120);
margin: 0 auto;
}
#container {
margin: 0 auto;
margin-bottom: 83.88px;
text-align: center;
background-color: white;
height: 79.88px;
border: 2px solid white;
}
/*button {
border: none;
background: none;
outline: none;
font-size: 1.0em;
}*/
#controls {
margin-top: 29.44px;
}
#nextColor {
margin-left: 200px;
}
#previousColor {
margin-right: 200px;
}
#saveColor {
text-align: center;
}
.savedColorsBox {
height: 100px;
width: 70%;
margin: 0 auto;
margin-top: 20px;
background: yellow;
}
p {
margin-top: 5%;
margin-left: 15%;
width: 102.3px;
letter-spacing: 1px;
font-weight: 800;
border-bottom: 1px solid;
color: white;
}
.currentColor {
background: black;
}
javascript,html,