Изменение класса элемента body в Opera
-
06-09-2019 - |
Вопрос
У меня есть этот скрипт, который в основном включает и выключает класс 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%}
Не связан с StackOverflow