Heizer: display = "none" bug in Opera

Liebes Forum

Da habe ich also diese Seite, die jetzt in jedem Browser läuft, aber in Opera gibt es einen bescheidenen Bug: Ich lasse mit JS ein Menu verschwinden. Syntax:

document.getElementById("menu").style.display = "none";

Eigentlich ganz einfach, aber in Opera wird nur ein Teil ausgeblendet, nämlich die Scrollbar des Menüs. Das eigentlich Menü bleibt sichtbar bis man das Hauptfenster scrollt. Dann verschwindet es.

Ich habe es auch mit visibility = "hidden" versucht, aber das hilf nur _manchmal_ (d.h. ab und zu verschwindet das Menu nun, aber nicht immer).

Am einfachsten wäre es wohl, Opera dazu zu bringen, die Seite neu zu rendern. Geht so was? Oder weiß jemand eine andere Möglichkeit, wie ich dieses Problem beseitigen kann?

Danke

Heizer

  1. hi,

    Oder weiß jemand eine andere Möglichkeit, wie ich dieses Problem beseitigen kann?

    gibt's das problem auch zum anschauen?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. gibt's das problem auch zum anschauen?

      Ok, ich habs jetzt mal online gebracht:
      http://www.cinetology.de/demos/displayNoneBug/

      Mit der Maus über den linken Balken fahren, dann öffnet sich das Menü. Das Problem tritt nicht immer auf, also vielleicht ein bißchen probieren, etwas scrollen und wieder probieren.

      Ich habe übrigends Opera 7.54u2 / WinXP SP2

      Und weil ich gerade dabei bin: Ich habe auf meinem WinXp IE 5.0, 5.5 und 6.0 installiert, was ja nur mit einem Hack geht. Anscheinend glauben alle drei jetzt, sie seien in Bezug auf Conditional COmments IE 6.0. Ist dieses Problem bekannt? Oder liegt der Fehler doch irgendwo anders? Wenn mir jemand einen Screenshot einer reinen IE 5.0 Installation schicken könnte, wäre ich sehr verbunden.

      Grüße

      Heizer

      1. hi,

        Und weil ich gerade dabei bin: Ich habe auf meinem WinXp IE 5.0, 5.5 und 6.0 installiert, was ja nur mit einem Hack geht. Anscheinend glauben alle drei jetzt, sie seien in Bezug auf Conditional COmments IE 6.0. Ist dieses Problem bekannt?

        ja.
        eine abfrage auf die versionsnummer funktioniert mit dieser methode nicht.

        Wenn mir jemand einen Screenshot einer reinen IE 5.0 Installation schicken könnte, wäre ich sehr verbunden.

        sorge dafür, dass die 5er-versionen nur das zu sehen kriegen, was sie zu sehen kriegen würden, wenn sie denn die conditional comments mit der abfrage auf die versionsnummer korrekt interpretieren würden - denn von der versionsnummern-sache abgesehen ist das rendering m.W. wirklich wie bei den "originalen".

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Ich danke dir. Dann weiß ich schon, wie ich es machen muß.

          Hast du auch was zu dem Operaproblem? Das beschäftigt mich im Moment eher.

          Nochmal Danke

          Heizer

  2. Hallo,

    document.getElementById("menu").style.display = "none";

    die Umschaltung zwischen "none" und "block" ist immer problembehaftet, da der Browser gewisse Bereiche neu zeichnen muss. Wenn du nun zusätzlich den ausgeblendeten Bereicht dynamisch verschiebst kann es sein, dass das UpdateRect vom Browser nicht richtig berechnet wird. So sieht es bei dir jedenfalls aus.

    Ich habe es auch mit visibility = "hidden" versucht, aber das hilf nur _manchmal_

    Ich habe in deinem script beides gefunden.

    layoutMenu.style.display = "none";
    layoutMenu.style.visibility = "hidden";

    verzichte auf display = "none"; und verwende nur die Eigenschaft visibility, dann sollte es klappen.

    Grüße,

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. So, hab noch etwas rumprobiert, und so funktioniert es jetzt:

      Zuerst visibility, dann display ausschalten. Wenn ich nur visibility verwende, bleibt ein Renderingfehler der Scrollbar übrig.

      Dank euch allen

  3. Kann dir nur sagen, dass ich dieses Problem in der neuen Version (8.0 beta 3) nicht habe.

    1. Kann dir nur sagen, dass ich dieses Problem in der neuen Version (8.0 beta 3) nicht habe.#

      Um so besser ;)