Хорошо, во-первых, я не понимаю, почему вы используете id для каждого div, в то время как у вас одинаковый стиль для каждого. лучше сделай это с классом
Во-вторых, я немного посмотрел и обнаружил, что люди делают, просто скрывают палитру цветов (input
) и запускают ее при нажатии.
В вашем фрагменте кода это будет выглядеть примерно так:
var div = document.getElementsByTagName("div");
var divCount = div.length;
var clickedDivId
for (var i = 0; i < divCount; i += 1) {
div[i].onclick = function(e) {
clickedDivId = this.id
document.getElementById("divbackgroundcolor").click()
};
}
function colorChange(){
var x = document.getElementById("divbackgroundcolor").value;
document.getElementById(clickedDivId).style.backgroundColor = x;
}
html, body {
overflow: display;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: white;
}
#divbackgroundcolor {
position: absolute;
opacity: 0;
z-index: -1;
}
.some_style {
width: 50px;
height: 50px;
background-color: red;
}
<input type="color" id="divbackgroundcolor" onchange="colorChange()">
<div class="some_style" id="some_id1"></div>
<div class="some_style" id="some_id2"></div>
<div class="some_style" id="some_id3"></div>
<div class="some_style" id="some_id4"></div>
<div class="some_style" id="some_id5"></div>
Обратите внимание, что я сохранил идентификатор div, на который я нажал, чтобы я мог определить, на каком div я щелкнул.
Надеюсь, что это ответ, который вы ищете.
Удачи.