Bernhard Peissl: Ebenen ein und ausblenden

Hallo

Da ich noch nicht so firm in DHTML bin, werke ich jetzt schon stundenlang an einem kleinen Ebene anzeigen/ausblenden Script herum. Aber es will einfach nicht!!!

Wenn ich es so mache funktionierts nicht:

// function show(name) {
// if (ns) {
//      ebene = document.layers[name]; aktivebene = document.layers[active];
//   }
//   if (ie) {
//      ebene = document.all[name].style; aktivebene = document.all[active].style;
//   }
//   zeigen(ebene);
//   if (active) verbergen(aktivebene);
//   active=name;
// }

... Fehlermeldung (meine persönliche Lieblingfehlermeldung, denn da weiss man nie, was man falsch gemacht hat): document.all[..].style ist kein Objekt !!!

Wenn ich es allerdings so mache funktionierts einwandfrei:

// function show(name) {
// if (ns) {
//      ebene = document.layers[name]; aktivebene = document.layers[active];
//   }
//   if (ie) {
//      ebene = document.all[name].style;
//   }
//   zeigen(ebene);
//   if (active) verbergen(aktivebene);
//   active=name;
// }

... aber er soll ja nicht alle Ebenen übereinander zeigen, sondern eine ausblenden, wenn er eine andere anzeigen soll.

Übrigens: im NS geht gar nix!! Keine Ahnung wieso !

Der gesamte Code steht unter < http://members.xoom.com/regenfeld/dreher/index.html>

<der Verzweiflung nahe>
Bernhard
</der Verzweiflung nahe> ??

  1. Hi
    Ja, ich glaube, dass du der Verzweiflung nahe bist.
    Denn:
    1. NS hat mit dem position:relative grosse Probleme. Du musst! alle relative's durch absolute ersetzen, und die Angaben von top, bzw left anpassen. Dann sind die links auch im NS anklickbar.
    2. Deine imagewechsel Funktion funktioniert nur mit dem IE, da NS layer wie extra documente behandelt. Deshalb muessen bilder in layern im NS immer mit document.layername.document.images... angesprochen werden. siehe: <../../sfausles/tsfa_tbb.htm#a1> Dazu musst du deinen layern namen gaben (mit id="namedeslayers"), die Bildwechselfunktion um den layernamen erweitern und eben zwischen IE und NS unterscheiden (wie es auch in dem link steht.)
    Wenn dann immer noch was nicht klappt, melde dich noch mal.
    Tschau Holger

    1. Hallo Holger

      1. NS hat mit dem position:relative grosse Probleme. Du musst! alle relative's durch
        absolute ersetzen, und die Angaben von top, bzw left anpassen. Dann sind die links auch im NS
        anklickbar.

      Ich hab mir das mal genau angesehen, bin mit der Maus ein wenig herumgefahren, und habe gemerkt,
      das die Hand (Link-Cursor ;-)) erst unter den ganzen divs erscheint. Er hat also die divs erst
      hingezeichnet, aber die Links dann untereinander unter den divs plaziert. Das war echt seltsam sag
      ich dir. Geisterlinks !!!

      1. Deine imagewechsel Funktion funktioniert nur mit dem IE, da NS layer wie extra documente
        behandelt. Deshalb muessen bilder in layern im NS immer mit document.layername.document.images...
        angesprochen werden. siehe: <../../sfausles/tsfa_tbb.htm#a1> Dazu
        musst du deinen layern namen gaben (mit id="namedeslayers"), die Bildwechselfunktion um den
        layernamen erweitern und eben zwischen IE und NS unterscheiden (wie es auch in dem link steht.)

      Ich frage jetzt nicht wieso das so kompliziert ist, das habe ich bereits aufgegeben. Aber ich freu mich
      jetzt schon auf Netscape 6! Denn da können wir dann wahrscheinlich gleich für drei Browser optimieren :-(

      Danke,
      Bernhard

      Kannst dir das Ergebnis ja nochmal ansehen, wenn du neugierig bist ;-)
      < http://members.xoom.com/regenfeld/dreher/index.html>

      <grins>
      ... und ab Montag auch unter
      {link: http://www.amd-wt.com]
      </grins>