У меня есть сетка дивов. Я хочу, чтобы каждый div постепенно менял цвет с серого на черный при каждой наведенной мышке - в частности, я хочу, чтобы бокс стал черным к 10-му событию наведения мыши. Я на полпути. В настоящее время у меня есть функция, реализующая этот градиент цвета, но после того, как один прямоугольник становится черным, все остальные блоки, на которые я нахожу курсор мыши, тоже черные. Как сделать так, чтобы каждая коробка начиналась с одного и того же оттенка серого? Бьюсь об заклад, я могу добиться этого с помощью очень длинной серии if
заявлений, но я хочу знать, есть ли более краткое решение.
const bigContainer = document.querySelector('.bigContainer')
window.onload = function initializeGrid() {
for(let i = 0; i < 16; i++) {
bigContainer.innerHTML+='<div class="row">';
for(let j = 0; j < 16; j++) {
bigContainer.innerHTML+='<div class="smallBox">';
}
}
}
let rbgPercentValue = 90;
bigContainer.addEventListener('mouseover', event => {
let target = event.target
let rgbColor = `rgb(${rbgPercentValue}%,${rbgPercentValue}%,${rbgPercentValue}%)`
if (target !== bigContainer) {
target.style['background'] = rgbColor;
rbgPercentValue -= 10;
}
})
.smallBox {
border: 1px solid black;
width: 40px;
height: 40px;
display: inline-block;
}
.row {
margin-bottom: -5px;
}
.bigContainer {
text-align: center;
}
<div class="bigContainer"></div>