Alterar classe elemento do corpo em Opera
-
06-09-2019 - |
Pergunta
Eu tenho esse script que basicamente alterna uma classe bgColor ligado e desligado para que o fundo muda para preto sobre o primeiro clique de botão e, em seguida, retorna para a classe vazia padrão no segundo clique. O que eu estou tentando descobrir é por isso que, no Opera 9.64, no 3º clique do botão, as estadias fundo preto e apenas o fundo ao redor do botão muda de cor.
<style>
.bgColor {background-color: #000000}
</style>
<button id="button">Change Class</button>
<script>
function changeBodyClass() {
var body = document.body;
if (body.className === "bgColor") {
body.className = "";
} else {
body.className = "bgColor";
}
}
document.getElementById("button").onclick = changeBodyClass;
</script>
Graças.
Solução
Parece haver um problema de processamento, porque quando você redimensionar Opera (forçando-o a redesenhar), em seguida, todo o fundo aparecerá em branco como esperado.
Você pode adicionar algo como isto ao seu CSS para forçar Opera em pensar que o corpo é de fato o mesmo tamanho de janela:
html {margin: 0; height: 100%}
body {margin: 0; height: 100%}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow