Js background color changer
Each square has a random color. For example, pink becomes green, orange becomes pink etc.How can I change the backgrounds?
<section>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<button id="btn">Click Me</button>
</section>
let colors = ["pink" , 'yellow' , 'green' , 'blue']
let btn = document.getElementById('btn')
let one = document.getElementById('one')
let two = document.getElementById('two')
let three = document.getElementById('three')
let four = document.getElementById('four')
one.style.backgroundColor = colors[0]
two.style.backgroundColor = colors[1]
three.style.backgroundColor = colors[2]
four.style.backgroundColor = colors[3]
btn.addEventListener('click' , function(){
let randomColor = colors[Math.floor(Math.random() * colors.length)]
one.style.backgroundColor = randomColor
})
and then i cant understand what to do
Solution 1:
Try this one instead which is easier by using forEach
loop.
Use unshift
to move the last element to the top of the array every time user clicks it.
let colors = ["pink" , 'yellow' , 'green' , 'blue']
//Assign orginial color:
document.querySelectorAll('div').forEach((item,index)=>{
item.style.backgroundColor = colors[index]
})
document.querySelector('#btn').addEventListener("click",function(){
document.querySelectorAll('div').forEach((item,index)=>{
item.style.backgroundColor = colors[index]
})
colors.unshift(colors.splice(colors.length-1, 1)[0]);
})
<div id="one">1</div>
<div id="two">2</div>
<div id="three">3</div>
<div id="four">4</div>
<button id="btn">Click Me</button>