Friedel: unsichtbares Div sichtbar machen in Opera6

Hallo
Auf einer Webseite habe ich ein  unsichtbares Div. Das versuche ich per Script mit einer Funktion ein- und aus zu blenden. Ich mache das mit

<div id="ntcaw" style="position:absolute; background-color:#fefefe; visibility:hidden;"  width="280">
<table ......</table>
</div>

und mit

function einblenden() {
document.getElementById("ntcaw").style.visibility = "visible";
}

function ausblenden() {
document.getElementById("ntcaw").style.visibility = "hidden";
}

Das funktioniert in Opera 5 und in Opera 7, aber nicht in Opera 6. In Opera 6 bleibt das Div unsichtbar. Weiß jemand warum nicht? Und vor allem: weiß jemand wie man es umschreiben kann damit es auch in Opera 6 funktioniert?

  1. Moin Friedel,

    kann man die Seite irgendwo sehen? Normalerweise geht das nämlich so, wie du es gemacht hast, auch in Opera 6, wie ich aus eigener Erfahrung sagen kann.

    Vielleicht gibt es Schwierigkeiten mit dem z-index? Ist aber nur ein Tipp ins Blaue, mehr geht erst, wenn das "Problemkind" zu sehen ist.

    Vielleicht reagiert der opera 6 auch komisch auf position:absolute, wenn keine Angaben zur Position gemacht werden?

    1. Hallo Vimes.

      Die Seite geht erst online, wenn sie fertig ist. Man kann sie also noch nicht sehen. Wenn ich mit dem Inhalt fertig bin, wird die Seite online gehen. Ich hoffe, dass das Script bis dahin auch in Opera 6 geht. Ich verwende den z-index hier nicht. Der Quellcode für das Div ist

      <div id="ntcaw" style="position:absolute; background-color:#fefefe; visibility:hidden;"  width="280">

      Dann folgt eine Tabelle und das Endtag für das Div.

      Per Script wird das Div immer so positioniert, dass es 16 Pixel rechts oder links neben dem Mauszeiger und 16 Pixel unter oder über dem Mauszeiger ist. Ob rechts oder links und unten oder oben hängt davon ab, ob zwischen Fensterrand und Mauszeiger genug Platz für das Div ist. Das funktioniert auch alles in IE5, IE6, Moz, NN6, NN7, Opera5 und Opa7. In Opa6 funktioniert die sache mit der Positionierung auch. Nur das Sichtbarmachen funzt dort (und nur dort) nicht.

      1. Die Seite geht erst online, wenn sie fertig ist. Man kann sie also noch nicht sehen. Wenn ich mit dem Inhalt fertig bin, wird die Seite online gehen. Ich hoffe, dass das Script bis dahin auch in Opera 6 geht. Ich verwende den z-index hier nicht. Der Quellcode für das Div ist

        <div id="ntcaw" style="position:absolute; background-color:#fefefe; visibility:hidden;"  width="280">

        Hallo Friedel,

        Opera 6 kommt normalerweise mit dem Ein- und Ausblenden von divs zurecht. Solange (mir) aber der restliche Quelltext nicht einsehbar ist, kann ich nur orakeln.
        btw. Warum definierst du die Breite des divs nicht auch in der CSS-Angabe?

        so long

        1. Ich bin zwar noch nicht so weit, aber ich hab mal eine Kopie der HP auf einen Webspace gelegt, der geradeunbenutzt ist. Unter http://f-i-t.net/hptest/ kann man sich den aktuellen entwicklungsstand ansehen. Die Problemseite erreicht man, indem man im linken Frame unten auf "Banner" klickt. Im rechten Frame erscheint die Problemseite. Wenn man mit der Maus über die unteren beiden Buttons fährt, wird das Div sichtbar. Das Div ist der "Infotip, den ich dort erwähne. Das funzt bei IE5 und 6, Moz, NN6 und 7 und Opa5 und 7. Aber nicht bei Opa6.

          Die Breitenangabe als Htmlattribut ist durch die Entwicklung des Scropts entstanden und wird wahrscheinlich noch geändert. Am Anfang hatte ich einfach einen blauen Punkt mit 10 Pixel Höhe und Breite, der in allen Browsern die Maus verfolgen sollte. Solange nicht gescrollt wurde war es ganz einfach, danach nicht mehr. Aber das Problem ist gelöst.

          1. Ach so. Noch ein Hinweis:
            Die URLs, die auf den Seiten unten stehen um die Seiten direkt zu verlinken funktionieren bei den Testseiten natürlich nicht. Das funktioniert nur bei der normalen Adresse. Die Seiten aus meinem Frameset kann man nicht einzeln anzeigen, weil sie per Script immer das Frameset von der Originaladresse laden und versuchen im Hauptframe die verlangte Seite dar zu stellen. Falls dein Browser nicht auf Deutsch ist, startet die Site auf Englisch. Dann musst du erst auf Deutsch umstellen. Der englische Teil ist größtenteils noch nicht geschrieben.

            1. Moin Friedel,

              puh, das ist ja 'n ganzer Haufen Quelltext. Habe selbst mal rumgespielt

              <html>
               <head>
                <title>test</title>
              </head>
              <body>

              <div id="nav" style="position:absolute; left:20px; top:20px;  width:170px; height:50px; text-align:center; background-color:darkgrey; z-index:1;">
              <a href="#" onMouseover="javascript:document.getElementById('ntcaw').style.visibility='hidden';">mach aus</a>
              <a href="#" onMouseover="javascript:document.getElementById('ntcaw').style.visibility='visible';">mach an</a></div>

              <div id="ntcaw" style="position:absolute; width:280px; background-color:lightgrey; visibility:hidden; z-index:0;">
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              blablablablablablablablablabla
              </div>

              </body>
              </html>

              Das läuft mit Opera 6 prächtig. Ich mutmaße also, dass die Positionierung der Divs im Opera 6 nicht so richtig hinhaut - und das ein/ausblenden zwar stattfindet, aber irgendwo anders.

              mehr vielleicht, wenn ich mich durch den Code gegraben hab.