Вопрос

У меня есть этот скрипт, который в основном включает и выключает класс bgColor, так что фон меняется на черный при первом нажатии кнопки, а затем возвращается к пустому классу по умолчанию при втором нажатии.Что я пытаюсь понять, так это почему в Opera 9.64 при 3-м нажатии кнопки фон остается черным, и только фон вокруг кнопки меняет цвет.

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

Спасибо.

Это было полезно?

Решение

Похоже, возникла проблема с рендерингом, потому что когда вы изменяете размер Opera (заставляя ее перерисовывать), весь фон будет белым, как и ожидалось.

Вы можете добавить что-то вроде этого в свой CSS, чтобы заставить Opera думать, что body действительно имеет тот же размер, что и viewport:

html {margin: 0; height: 100%}
body {margin: 0; height: 100%}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top