Como posso alterar a cor de fundo com o JavaScript?

Alguém conhece um método simples para trocar a cor de fundo de uma página web usando JavaScript?

Author: mc10, 2008-10-13

16 answers

Modificar a propriedade JavaScript document.body.style.background.

Por exemplo:

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

<BODY onload="changeBackground('red');">

Nota: Isto depende um pouco da forma como a sua página é colocada em conjunto, por exemplo, se estiver a usar um contentor DIV com uma cor de fundo diferente, terá de modificar a cor de fundo desse, em vez do corpo do documento.

 164
Author: Nathan Arthur, 2017-08-15 21:45:16

Você não precisa do AJAX para isto, apenas de um programa java simples que configure a propriedade de fundo-cor do elemento do corpo, como este:

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

Se você quiser fazê-lo como se fosse iniciado pelo servidor, você teria que pesquisar o servidor e, em seguida, mudar a cor de acordo.

 41
Author: Simon Lehmann, 2008-10-13 14:27:56
Concordo com o poster anterior que mudar a cor por className é uma abordagem mais bonita. Meu argumento no entanto é que um className pode ser considerado como uma definição de "por que você quer que o fundo seja esta ou aquela cor."

Por exemplo, torná-lo vermelho não é apenas porque você quer ele vermelho, mas porque você gostaria de informar os usuários de um erro. Como tal, definir o className AnErrorHasOccured no corpo seria a minha implementação preferida.

Em css

body.AnErrorHasOccured
{
  background: #f00;
}

Em JavaScript:

document.body.className = "AnErrorHasOccured";

Isto deixa-lhe as opções de estilo de mais elementos de acordo com este className. E como tal, ao definir um className Você meio que dá à página um certo estado.

 18
Author: Martin Kool, 2017-08-16 13:17:04

O AJAX está a obter dados do servidor usando Javascript e XML de uma forma assíncrona. A menos que você queira baixar o código de cores do servidor, não é isso que você está realmente almejando!

Mas caso contrário, poderá definir o fundo do CSS com o Javascript. Se você está usando um framework como o jQuery, será algo assim: [[4]}

$('body').css('background', '#ccc');
Caso contrário, isto deve funcionar.
document.body.style.background = "#ccc";
 9
Author: Oli, 2008-10-13 14:30:23

Podes fazê-lo de maneiras diferentes. Passo 1

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

Para alterar o fundo do corpo

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

Para mudar um elemento com ID

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

Para elementos com a mesma classe

   var elements = document.getElementsByClassName("ClassName")
        for (var i = 0; i < elements.length; i++) {
            elements[i].style.background=imageUrl;
        }
 4
Author: Vignesh Subramanian, 2015-02-26 05:10:11
Eu não classificaria isto como "AJAX". De qualquer forma, algo como seguir deve fazer o truque:
document.body.style.backgroundColor = 'pink';
 3
Author: Duncan Smart, 2008-10-13 14:27:50

Abordagem Css:

Se quiser ver a cor contínua, use este código:

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;
    }
  }  

Se quiser vê-lo mais rápido ou mais lento, mude 10 segundos para 5 segundos, etc.

 3
Author: Deniz.parlak, 2016-09-04 10:34:00

Você pode mudar o fundo de uma página usando simplesmente:

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

No entanto, o programa abaixo irá alterar o fundo da página após cada 3 segundos usando a função setTimeout ():

$(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);
        })

LEIA MAIS

DEMONSTRAÇÃO

 2
Author: defau1t, 2012-11-02 11:27:23
Preferia ver aqui a utilização de uma classe css. Evita ter dificuldade em ler os códigos de cores / hex em javascript.
document.body.className = className;
 2
Author: redsquare, 2015-10-28 12:27:08

Isto irá alterar a cor de fundo de acordo com a escolha do utilizador seleccionado no 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>
 2
Author: Ritam Das, 2017-08-16 13:19:50

Adicione este elemento do programa ao seu elemento corporal, alterando a cor como desejar:

<body>
  <p>Hello, World!</p>
  <script type="text/javascript">
     document.body.style.backgroundColor = "#ff0000";  // red
  </script>
</body>
 1
Author: james.garriss, 2018-02-01 12:16:20

Mas você gostaria de configurar a cor do corpo antes do elemento <body> existir. Assim tem a cor certa desde o início.

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

Isto pode ser colocado no <head> do documento ou no seu ficheiro js.

Aqui está uma boa cor para brincar.
var myColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
 0
Author: gaby de wilde, 2013-10-03 02:04:13

Sugiro o seguinte código:

<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>
 0
Author: joel hills, 2017-08-16 13:20:31

Se deseja usar um botão ou outro evento, basta usar isto em JS:

document.querySelector("button").addEventListener("click", function() {
document.body.style.backgroundColor = "red";
});
 0
Author: Alex, 2018-02-22 11:14:57

Você pode mudar o fundo de uma página usando simplesmente:

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

Leia mais @ mudando a cor de fundo

 0
Author: jonathan klevin, 2018-03-28 05:11:38

Este é um código simples para mudar o fundo usando javascript

<body onLoad="document.bgColor='red'">
 -2
Author: Shahnawaz Alam, 2016-06-13 09:08:33