Home > Mobile >  Js background color changer
Js background color changer

Time:01-22

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 Image

CodePudding user response:

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>

  •  Tags:  
  • Related