سؤال

لدي هذا البرنامج النصي الذي تبديل أساسا فئة BGColor وإيقاف تشغيله بحيث يتغير الخلفية إلى الأسود في الزر الأول، ثم إرجاع الفئة الفارغة الافتراضية في النقر الثاني. ما أحاول معرفةه هو السبب في ذلك، في Opera 9.64، على النقر الثالث للزر، يبقى الخلفية باللون الأسود وفقط الخلفية حول الزر تغيير اللون.

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

شكرا.

هل كانت مفيدة؟

المحلول

يبدو أن هناك قضية عرضية، لأنه عند تغيير حجم الأوبرا (إجباره على إعادة رسم)، ستظهر كل الخلفية باللون الأبيض كما هو متوقع.

يمكنك إضافة شيء من هذا القبيل إلى CSS الخاص بك لإجبار الأوبرا على التفكير في أن الجسم هو في الواقع بنفس حجم Viewport:

html {margin: 0; height: 100%}
body {margin: 0; height: 100%}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top