Как через JS задать определённые цвета чтобы повторялись они случайно?
Есть вот такой див
<div class="table"></div>
вот js
let table = document.querySelector('.table');
let amountBoxes = 621;
let colors = ['white', 'red', 'orange', 'pink', 'purple', 'yellow', 'green', 'blue']
for (let i = 0; i < amountBoxes; i++) {
let box = document.createElement('div')
box.classList.add('box')
table.append(box)
box.addEventListener('mouseenter', () => setColor(box))
box.addEventListener('mouseleave', () => removeColor(box))
}
function setColor(box) {
box.style = `background: orange`
}
function removeColor(box) {
box.style = `background: ''`
}
здесь -
function setColor(box) {
box.style = `background: orange`
}
отрабатывает только приписанные цвета, а нужно white, red, orange, pink, purple, yellow, green, blue в рандомном порядке
Нужно чтобы при наведении они меняли цвет
Ответы (2 шт):
Автор решения: Сергей Мельниченко
→ Ссылка
в цикле поставьте какой нибудь рандомайзер, который будет выдавать рандомное число от 0 до color.length - 1, и берите с массива элемент по индексу, который выдал рандомайзер, и далее уже созданному box присвойте:
box.style = `background: ${randomColor}`
Автор решения: Pavel Nazarian
→ Ссылка
let table = document.querySelector('.table');
let amountBoxes = 10;
for (let i = 0; i < amountBoxes; i++) {
let box = document.createElement('div')
box.classList.add('box')
table.append(box)
box.addEventListener('mouseenter', (e) => setColor(box))
box.addEventListener('mouseleave', (e) => removeColor(box))
}
function setColor(box) {
let colors = ['white', 'red', 'orange', 'pink', 'purple', 'yellow', 'green', 'blue'];
let r = Math.floor(Math.random() * colors.length);
box.style.background = colors[r];
}
function removeColor(box) {
box.style.background = '';
}
.table div {
border: 1px solid grey;
width: 50px;
height: 20px;
}
<div class="table"></div>