Como altero a cor do plano de fundo com JavaScript?

141

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

Anders
fonte

Respostas:

194

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

Por exemplo:

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

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

Nota: isso depende um pouco de como sua página é montada, por exemplo, se você estiver usando um contêiner DIV com uma cor de fundo diferente, será necessário modificar a cor de fundo disso em vez do corpo do documento.

Senhor Jojo
fonte
57

Você não precisa do AJAX para isso, apenas alguns scripts java simples configurando a propriedade background-color do elemento body, assim:

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

Se você quiser fazê-lo como se tivesse sido iniciado pelo servidor, seria necessário pesquisar o servidor e alterar a cor de acordo.

Simon Lehmann
fonte
2
Para responder literalmente: a pergunta era sobre mudar a cor do plano de fundo, não todo o plano de fundo.
Wolf
18

Concordo com o pôster anterior de que mudar a cor classNameé uma abordagem mais bonita. Meu argumento, porém, é que umclassName pode ser considerada como uma definição de "por que você deseja que o plano de fundo seja dessa ou daquela cor".

Por exemplo, torná-lo vermelho não é apenas porque você o quer vermelho, mas porque você deseja informar os usuários sobre um erro. Como tal, definindo o classNameAnErrorHasOccured no corpo seria minha implementação preferida.

Em css

body.AnErrorHasOccured
{
  background: #f00;
}

Em JavaScript:

document.body.className = "AnErrorHasOccured";

Isso deixa as opções de estilizar mais elementos de acordo com isso className. E, como tal, ao definir um classNametipo de dado para a página, um determinado estado.

Martin Kool
fonte
9

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

Caso contrário, você pode definir o plano de fundo CSS com Javascript. Se você estiver usando uma estrutura como o jQuery, será algo como isto:

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

Caso contrário, isso deve funcionar:

document.body.style.background = "#ccc";
Oli
fonte
8

Você pode fazer isso das seguintes maneiras: PASSO 1

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

Para mudar o fundo do corpo

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

Para alterar 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;
        }
Vignesh Subramanian
fonte
3

Eu realmente não classificaria isso como "AJAX". De qualquer forma, algo como o seguinte deve fazer o truque:

document.body.style.backgroundColor = 'pink';
Duncan Smart
fonte
3

Abordagem CSS:

Se você deseja ver cores contínuas, 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 você quiser vê-lo mais rápido ou mais devagar, altere 10 segundos para 5 segundos etc.

Deniz.parlak
fonte
2

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

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

No entanto, o script abaixo alterará o plano de fundo da página a 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

DEMO

defau1t
fonte
2

Eu preferiria ver o uso de uma classe css aqui. Evita ter difícil ler cores / códigos hexadecimais em javascript.

document.body.className = className;
quadrado vermelho
fonte
2

Isso mudará a cor do plano de fundo de acordo com a escolha do usuário selecionado no menu suspenso:

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>

Ritam Das
fonte
1

Adicione este elemento de script ao elemento do corpo, alterando a cor conforme desejado:

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

james.garriss
fonte
1
<!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>
Arslan
fonte
2
Onde está sua explicação e, além disso, como isso é diferente das outras respostas?
j08691 01/04
0

Mas você deseja configurar a cor do corpo antes que o <body>elemento exista. Dessa forma, ele tem a cor certa desde o início.

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

Você pode colocar isso no <head>documento ou no seu arquivo js.

Aqui está uma bela cor para brincar.

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

Eu sugeriria 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>
joel hills
fonte
0

se você deseja usar um botão ou algum outro evento, use isso em JS:

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

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

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

Leia mais @ Alterando a cor do plano de fundo

jonathan klevin
fonte
0

Como alternativa, se você desejar especificar o valor da cor de fundo na notação rgb, tente

document.getElementById("yourid").style.backgroundColor = 'rgb(' + a + ',' + b + ',' + c + ')';

onde a, b, c são os valores da cor

Exemplo:

document.getElementById("yourid").style.backgroundColor = 'rgb(224,224,224)';
Divakar Rajesh
fonte
-2

Esta é uma codificação simples para alterar o plano de fundo usando javascript

<body onLoad="document.bgColor='red'">
Shahnawaz Alam
fonte