Portanto, eu queria que a cada "clicadela" no rato, o fundo da página alternasse entre preto e branco... o que estou a fazer mal?<html>
<body>
Click anywhere in this window to change the background color of body
<script>
window.onclick = myFunction;
function myFunction() {
var cor=document.body.style.backgroundColor;
if(cor=="#000") document.body.style.backgroundColor="#fff";
else document.body.style.backgroundColor="#000";
}
</script>
</body>
</html>
Questão sobre HTML
-
helioneves
- Electricista de 2ª

- Mensagens: 327
- Registado: 09 mar 2019, 13:13
- Profissão: Desempregado
- Localização: Por aí
- Enviou: 4 vezes
- Agradecimento recebido: 9 vezes
Questão sobre HTML
Tenho uma pedra no sapato relacionada com HTML... queria usar o evento "onclick" para mudar a cor de fundo de uma página; ( supostamente ) o seguinte código devia tratar do assunto:
- Mestre Verde
- Curioso

- Mensagens: 44
- Registado: 08 fev 2026, 20:08
- Profissão: Estudante Universitário
- Localização: Barcelos
- Enviou: 12 vezes
- Agradecimento recebido: 1 vez
Re: Questão sobre HTML
Primeiro ponto: não sei o que usas para criar os teus programas (um editor de texto ou um IDE), mas eu aconselho a usar rgb(0 a 255 (vermelho), 0 a 255 (verde), 0 a 255 (azul)) em vez de hexadecimal.
Experimenta este código
ou este se souberes que o Brawser que vais usar tem de certeza o fundo branco, se não aplicares nada como background:
Experimenta este código
Código: Selecionar todos
<html>
<body>
Clica em qualquer lugar para mudar de cor
<script>
let preto = false;
window.onclick = function() {
if(preto){
document.body.style.backgroundColor = "white";
} else {
document.body.style.backgroundColor = "black";
}
preto = !preto;
}
</script>
</body>
</html>Código: Selecionar todos
<html>
<head>
<style>
.preto {
background-color: black;
}
</style>
</head>
<body>
Click anywhere in this window to change the background color
<script>
window.onclick = function() {
document.body.classList.toggle("preto");
}
</script>
</body>
</html>Técnico Superior de Mecatrónica ; Aspirante a Engenheiro de Mecatrónica
-
Coldhx
- Faça a sua apresentação

- Mensagens: 7
- Registado: 04 mar 2026, 17:48
- Profissão: Eng. Informático
- Localização: Lisboa
- Agradecimento recebido: 1 vez
Re: Questão sobre HTML
O problema é que o formato da propriedade não é hexadecimal (tipo #000) mas uma string tipo
Podes resolver ao trocar o teu if para...
... mas a solução ideal passa por não fazer comparação de strings e guardar o estado numa variável separada (como é exemplo da resposta acima, a variavel "preto").
Código: Selecionar todos
document.body.style.backgroundColorCódigo: Selecionar todos
rgb(0, 0, 0)Código: Selecionar todos
if(cor=="rgb(0, 0, 0)")- Mestre Verde
- Curioso

- Mensagens: 44
- Registado: 08 fev 2026, 20:08
- Profissão: Estudante Universitário
- Localização: Barcelos
- Enviou: 12 vezes
- Agradecimento recebido: 1 vez
Re: Questão sobre HTML
Boa, referi em cima o formato rgb e esqueci-me de substituir no código, eu também.... 
Técnico Superior de Mecatrónica ; Aspirante a Engenheiro de Mecatrónica
-
helioneves
- Electricista de 2ª

- Mensagens: 327
- Registado: 09 mar 2019, 13:13
- Profissão: Desempregado
- Localização: Por aí
- Enviou: 4 vezes
- Agradecimento recebido: 9 vezes
Re: Questão sobre HTML
obrigado meus senhores pelas respostas!
Entretanto tinha descoberto num outro fórum o problema do meu código ( não é só aqui que há gente prestável...
)
apesar de ainda não perceber porque é que o seguinte código não devolve absolutamente nada:
document.write(document.body.style.backgroundColor);
mas enfim, não se pode ter tudo...
Entretanto tinha descoberto num outro fórum o problema do meu código ( não é só aqui que há gente prestável...
apesar de ainda não perceber porque é que o seguinte código não devolve absolutamente nada:
document.write(document.body.style.backgroundColor);
mas enfim, não se pode ter tudo...