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.

Foi útil?

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
scroll top