VaheM27
VaheM27

Reputation: 13

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

Upvotes: 0

Views: 70

Answers (1)

James
James

Reputation: 2787

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>

Upvotes: 1

Related Questions