How do I change the background color with JavaScript?

JavascriptCss

Javascript Problem Overview


Anyone know a simple method to swap the background color of a webpage using JavaScript?

Javascript Solutions


Solution 1 - Javascript

Modify the JavaScript property document.body.style.background.

For example:

function changeBackground(color) {
   document.body.style.background = color;
}

window.addEventListener("load",function() { changeBackground('red') });

Note: this does depend a bit on how your page is put together, for example if you're using a DIV container with a different background colour you will need to modify the background colour of that instead of the document body.

Solution 2 - Javascript

You don't need AJAX for this, just some plain java script setting the background-color property of the body element, like this:

document.body.style.backgroundColor = "#AA0000";

If you want to do it as if it was initiated by the server, you would have to poll the server and then change the color accordingly.

Solution 3 - Javascript

I agree with the previous poster that changing the color by className is a prettier approach. My argument however is that a className can be regarded as a definition of "why you want the background to be this or that color."

For instance, making it red is not just because you want it red, but because you'd want to inform users of an error. As such, setting the className AnErrorHasOccured on the body would be my preferred implementation.

In css

body.AnErrorHasOccured
{
  background: #f00;
}

In JavaScript:

document.body.className = "AnErrorHasOccured";

This leaves you the options of styling more elements according to this className. And as such, by setting a className you kind of give the page a certain state.

Solution 4 - Javascript

AJAX is getting data from the server using Javascript and XML in an asynchronous fashion. Unless you want to download the colour code from the server, that's not what you're really aiming for!

But otherwise you can set the CSS background with Javascript. If you're using a framework like jQuery, it'll be something like this:

$('body').css('background', '#ccc');

Otherwise, this should work:

document.body.style.background = "#ccc";

Solution 5 - Javascript

You can do it in following ways STEP 1

   var imageUrl= "URL OF THE IMAGE HERE";
   var BackgroundColor="RED"; // what ever color you want

For changing background of BODY

document.body.style.backgroundImage=imageUrl  //changing bg image
document.body.style.backgroundColor=BackgroundColor //changing bg color

To change an element with ID

document.getElementById("ElementId").style.backgroundImage=imageUrl
document.getElementById("ElementId").style.backgroundColor=BackgroundColor 

for elements with same class

   var elements = document.getElementsByClassName("ClassName")
        for (var i = 0; i < elements.length; i++) {
            elements[i].style.background=imageUrl;
        }

Solution 6 - Javascript

I wouldn't really class this as "AJAX". Anyway, something like following should do the trick:

document.body.style.backgroundColor = 'pink';

Solution 7 - Javascript

You can change background of a page by simply using:

document.body.style.background = #000000; //I used black as color code

However the below script will change the background of the page after every 3 seconds using setTimeout() function:

$(function() {
            var colors = ["#0099cc","#c0c0c0","#587b2e","#990000","#000000","#1C8200","#987baa","#981890","#AA8971","#1987FC","#99081E"];
             
            setInterval(function() { 
                var bodybgarrayno = Math.floor(Math.random() * colors.length);
                var selectedcolor = colors[bodybgarrayno];
                $("body").css("background",selectedcolor);
            }, 3000);
        })

READ MORE

DEMO

Solution 8 - Javascript

Css approach:

If you want to see continuous colour, use this code:

body{
    background-color:black;
    animation: image 10s infinite alternate;
    animation:image 10s infinite alternate;
    animation:image 10s infinite alternate;
}

@keyframes image{
    0%{
background-color:blue;
}
25%/{
    background-color:red;
}
50%{
    background-color:green;
}
75%{

    background-color:pink;
}
100%{
    background-color:yellow;
    }
  }  

If you want to see it faster or slower, change 10 second to 5 second etc.

Solution 9 - Javascript

I would prefer to see the use of a css class here. It avoids having hard to read colors / hex codes in javascript.

document.body.className = className;

Solution 10 - Javascript

This will change the background color according to the choice of user selected from the drop-down menu:

function changeBG() {
  var selectedBGColor = document.getElementById("bgchoice").value;
  document.body.style.backgroundColor = selectedBGColor;
}

<select id="bgchoice" onchange="changeBG()">
    <option></option>
    <option value="red">Red</option>
    <option value="ivory">Ivory</option>
    <option value="pink">Pink</option>
</select>

Solution 11 - Javascript

if you wish to use a button or some other event, just use this in JS:

document.querySelector("button").addEventListener("click", function() {
document.body.style.backgroundColor = "red";
});

Solution 12 - Javascript

Alternatively, if you wish to specify the background color value in rgb notation then try

document.getElementById("yourid").style.backgroundColor = `rgb(${a}, ${b}, ${c})`;

where a,b,c are the color values

Example:

document.getElementById("yourid").style.backgroundColor = 'rgb(224,224,224)';

Solution 13 - Javascript

<!DOCTYPE html>
<html>
<body>
<select name="" id="select" onClick="hello();">
    <option>Select</option>
    <option style="background-color: #CD5C5C;">#CD5C5C</option>
    <option style="background-color: #F08080;">#F08080</option>
    <option style="background-color: #FA8072;">#FA8072</option>
    <option style="background-color: #E9967A;">#E9967A</option>
    <option style="background-color: #FFA07A;">#FFA07A</option>
</select>
<script>
function hello(){
let d = document.getElementById("select");
let text = d.options[d.selectedIndex].value;
document.body.style.backgroundColor=text;
}
</script>
</body>
</html>

Solution 14 - Javascript

Add this script element to your body element, changing the color as desired:

<body>
  <p>Hello, World!</p>
  <script type="text/javascript">
     document.body.style.backgroundColor = "#ff0000";  // red
  </script>
</body>

Solution 15 - Javascript

so you can done very easily by just calling a function like

 function changeBg()
    {
      document.body.style.color.backgroundColor="#ffffff";

    }

Solution 16 - Javascript

I would suggest the following code:

<div id="example" onClick="colorize()">Click on this text to change the
background color</div>
<script type='text/javascript'>
function colorize() {
var element = document.getElementById("example");
element.style.backgroundColor='#800';
element.style.color='white';
element.style.textAlign='center';
}
</script>

Solution 17 - Javascript

You can change background of a page by simply using:

function changeBodyBg(color){
    document.body.style.background = color;
}

Read more @ Changing the Background Color

Solution 18 - Javascript

Here are 2 ways to Change Background Color Using Javascript

  1. To change background color with javascript you can apply style.background or style.backgroundColor on the element you want to change background for.

    The below example changes the background color of the body when you click an element using style.background property.

function pink(){ document.body.style.background = "pink"; }
function sky(){ document.body.style.background = "skyblue"; }

<p onclick="pink()" style="padding:10px;background:pink">Pink</p>
<p onclick="sky()" style="padding:10px;background:skyblue">Sky</p>


  1. Another approach could be by adding a CSS class using javascript that gives a background to the element it is attached.

    You can see more ways to add class using javascript but here you can simply use classList.add() property.

    function addClass(yourClass){
        document.body.classList.remove("sky", "pink");
        document.body.classList.add(yourClass);
    }
    

    .pink {
        background: pink;
    }
    
    .sky {
        background: skyblue;
    }
    

    <p onclick="addClass('pink')" style="padding:10px;background:pink">Pink</p>
    <p onclick="addClass('sky')" style="padding:10px;background:skyblue">Sky</p>
    

Solution 19 - Javascript

But you would want to configure the body color before the <body> element exists. That way it has the right color from the get go.

<script>
    var myColor = "#AAAAAA";
    document.write('\
        <style>\
            body{\
                background-color: '+myColor+';\
            }\
        </style>\
    ');
</script>

This you can put in the <head> of the document or in your js file.

Here is a nice color to play with.

var myColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

Solution 20 - Javascript

This code makes random color for background every second.

setInterval(changeColor,1000);
function changeColor(){
  let r = Math.random() * 255 ;
  let g = Math.random() * 255 ;
  let b = Math.random() * 255 ;
  
  document.body.style.backgroundColor = `rgb( ${r}, ${g}, ${b} )`;
}

I hope helps someone.❤

Solution 21 - Javascript

 <p id="p1">Hello, Moazzam!</p>
 <p >Hello, Moazzam!</p>
 <p >Hello, Moazzam!</p>
 <script type="text/javascript">
 document.getElementById("p1").style.color= "#ff0000";  // red
 </script>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndersView Question on Stackoverflow
Solution 1 - Javascriptuser7094View Answer on Stackoverflow
Solution 2 - JavascriptSimon LehmannView Answer on Stackoverflow
Solution 3 - JavascriptMartin KoolView Answer on Stackoverflow
Solution 4 - JavascriptOliView Answer on Stackoverflow
Solution 5 - JavascriptVignesh SubramanianView Answer on Stackoverflow
Solution 6 - JavascriptDuncan SmartView Answer on Stackoverflow
Solution 7 - Javascriptdefau1tView Answer on Stackoverflow
Solution 8 - JavascriptDeniz.parlakView Answer on Stackoverflow
Solution 9 - JavascriptredsquareView Answer on Stackoverflow
Solution 10 - JavascriptRitam DasView Answer on Stackoverflow
Solution 11 - JavascriptAlexView Answer on Stackoverflow
Solution 12 - JavascriptDivakar RajeshView Answer on Stackoverflow
Solution 13 - JavascriptArslanView Answer on Stackoverflow
Solution 14 - Javascriptjames.garrissView Answer on Stackoverflow
Solution 15 - Javascriptsalik saleemView Answer on Stackoverflow
Solution 16 - Javascriptjoel hillsView Answer on Stackoverflow
Solution 17 - Javascriptjonathan klevinView Answer on Stackoverflow
Solution 18 - JavascriptSatish Chandra GuptaView Answer on Stackoverflow
Solution 19 - Javascriptgaby de wildeView Answer on Stackoverflow
Solution 20 - JavascriptKia BolukiView Answer on Stackoverflow
Solution 21 - JavascriptMoazzam SView Answer on Stackoverflow