viz: DIVs & Layer...

Servus zusammen,

hab en kleines Problem [see below...]:

testet ma das Script... wenn mir DANN einer sagen kann warum
der Shit im NN nur funzt wenn alle DIVs wieder 'static' positioniert sind

  • dann geb ich ein aus (... nee, spass - wäre zumindest sehr erleichtert).

Danke im Voraus...

---

<table>
<tr>
 <td><b>header oder so...</b></td>
</tr>
<tr>
 <td>
 <ilayer id="main" width="200" height="50">
  <layer id="navi_layer" visibilty="show" bgcolor="#FFFFFF">
  <div id="navi_div" style="position:absolute; visibility:visible;">
   Navi:
   <a href="javascript://" onClick="enlarge('01')">Item 1</a>
   <a href="javascript://" onClick="enlarge('02')">Item 2</a>
  </div>
  </layer>

<layer id="layer01" visibility="hide" bgcolor="#FFFFFF">
  <div id="div01" style="position:absolute; visibility:hidden; background-color:#00CC00;">
   Item 1...
   <a href="javascript://" onClick="kill('01')">close</a>
  </div>
  </layer>

<layer id="layer02" visibility="hide" bgcolor="#FFFFFF">
  <div id="div02" style="position:absolute; visibility:hidden; background-color:#CC0000;">
   Item 2...
   <a href="javascript://" onClick="kill('02')">close</a>
  </div>
  </layer>
 </ilayer>
 </td>
</tr>
</table>
<script>
function enlarge(item) {
 if(document.all) {
  item = "div" + item;
  document.all.navi_div.style.visibility = "hidden";
  document.all[item].style.visibility = "visible";
 }
 if(document.layers) {
  item = "layer" + item;
  document.main.document.navi_layer.visibility = "hide";
  document.main.document[item].visibility = "show";
 }
}
function kill(item) {
 if(document.all) {
  item = "div" + item;
  document.all[item].style.visibility = "hidden";
  document.all.navi_div.style.visibility = "visible";
 }
 if(document.layers) {
  item = "layer" + item;
  document.main.document[item].visibility = "hide";
  document.main.document.navi_layer.visibility = "show";
 }
}
</script>

---

viz

  1. Hi,

    testet ma das Script... wenn mir DANN einer sagen kann warum
    der Shit im NN nur funzt wenn alle DIVs wieder 'static' positioniert sind

    kann ich schon vorher. Ein <div style="position:absolute;"> ist identisch zu einem <layer> und hat ergo ebenfalls ein (weiteres) document-Objekt.

    • dann geb ich ein aus (... nee, spass - wäre zumindest sehr erleichtert).

    He, da besteh ich jetzt aber drauf :-)

    Cheatah, einer Übertragung per HTCPCP (RFC 2324, http://www.ietf.org/rfc/rfc2324.txt) gegenüber nicht abgeneigt

  2. Hallo,

    mir ist noch nicht klar was das alles soll, sieht sehr umständlich aus.

    Und absolute div's unter NN4 in Tabellen sieht sowieso nicht gut aus.

    Warum lässt Du nicht die Layer weg und nimmst einfach relative div in den
    Tabellen ?

    Mit separaten <style></style> Anweisungen und id's klappts dann.

    Grüsse

    Cyx23

    1. mir ist noch nicht klar was das alles soll, sieht sehr umständlich aus.

      nuja... war ja nur so auf die schnelle...

      Und absolute div's unter NN4 in Tabellen sieht sowieso nicht gut aus.

      sind aber nötig (gut, könnte auch en div nehmen als... is doch egal)weil absolute und left:x... bzw. top:x... lässt sich nich realisieren, da das Menu in einer zentrierten Tabelle steht!

      Warum lässt Du nicht die Layer weg und nimmst einfach relative div in den
      Tabellen ?

      weil ich den Platz brauch und sie daher übereinander liegen müssen...

      ...doch leider kann ich mit der Alternative nicht viel anfangen!

      trotzdem danke!

      1. Hallo,

        Und absolute div's unter NN4 in Tabellen sieht sowieso nicht gut aus.
        sind aber nötig (gut, könnte auch en div nehmen als... is doch egal)weil absolute und left:x... bzw. top:x... lässt sich nich realisieren, da das Menu in einer zentrierten Tabelle steht!

        das ist meist nicht egal, und das div mit der absoluten position hast
        du ja jetzt drinnen zusätzlich zu den Layern:
        <div id="div01" style="position:absolute; ...
        das solltest du ausserhalb der tabelle definieren, das haut besonders
        bei Netscape besser hin, wenn du wirklich position:absolute meinst.
        ( Oder du brauchst es doch in der Tabelle, dann ist es position:relative)

        Und du kannst einfach das gleiche <div> für Netscape und IE nehmen
        und es über die gleichen id's ansprechen und verstecken.

        Grüsse

        Cyx23

        1. <div id="div01" style="position:absolute; ...
          das solltest du ausserhalb der tabelle definieren, das haut besonders
          bei Netscape besser hin, wenn du wirklich position:absolute meinst.

          jo, aber die divs müssen 'absolute', versteckt in der zelle liegen, weil ich nicht mehr platz (fest-definierte zelle) hab! ich kann sie einfach nicht global, 'absolute' positionieren, da die tabelle ZENTRIERT im Fenster positioniert ist (frameset nicht möglich!).

          doch sobald ich einen weiteren div als sog. maininterface über den ilayer anleg, funktioniert das mit der Objekthirarchy im NN nich mehr...

          ---

          viz

          1. Hallo nochmal,

            jo, aber die divs müssen 'absolute', versteckt in der zelle liegen, weil ich nicht mehr platz (fest-definierte zelle) hab! ich kann sie einfach nicht global, 'absolute' positionieren, da die tabelle ZENTRIERT im Fenster positioniert ist (frameset nicht möglich!).
            doch sobald ich einen weiteren div als sog. maininterface über den ilayer anleg, funktioniert das mit der Objekthirarchy im NN nich mehr...

            also wenn du für Netscape 4 die divs ohne visibility:hidden;
            hättest, sollte es schon gehen.

            Ich hab hier mal einiges auskommentiert und dann passiert schon etwas,
            sieht ähnlich aus wie bei IE.

            Du brauchst ja die divs nicht voll wenn du Netscape4 die Layer ansprichst.
            Da sowieso Javscript nötig ist kannst du die styleangaben evtl. per
            <script>
            if(!document.layers)document.write(<style>div{visbility:hidden}</style>);
            </script>
            machen.
            Die Adressierung der Netscapelayer stimmt vmtl. bereits.

            Grüsse

            Cyx23

            1. <script>
              if(!document.layers)document.write(<style>div{visbility:hidden}</style>);
              </script>

              jo, du hast recht! so funzts!

              danke nochmals...

              ---

              viz