Dhtml für alle browser - ebenentausch ¿

wer weiss , wo man ein dhtml-script bekommt,

dass für den IE und NN 4.7 und NN 6.0
funktioniert.

das script sollte ebenen wie folgt austauschen.

bei klick auf z.b. 4 textlinks sollen jeweils entsprechend 4 grafiken getauscht werden.
diese 4 grafiken sollen alle auf der selben stelle positioniert sein. nur die erste grafik ist sichtbar ( für textlink 1) , die anderen grafiken sind versteckt und erscheinen dann jeweils
bei klick auf textlink 2, textlink 3 und textlink 4…


Häh?
Hallo Jürgen,

liegt das an mir, oder klingt Deine Problembeschreibung etwas konfus? Vielleicht kannst Du ein Beispiel (egal für welchen Browser) beifügen, bei dem es so funktioniert, wie Du es Dir vorstellst!?

Aber vielleicht hilft Dir auch schon diese Seite hier:

http://www.tfh-berlin.de/~s680458/Karte.html

Die 5 Beschreibungstexte (das sind Grafiken - auch wenn’s auf den ersten Blick anders aussieht…) wechseln dynamisch, je nachdem, über welchem Erdteil die Maus steht. Wenn Du jetzt das „onMouseover“ durch ein „onClick“ ersetzt und die Erdteile durch Textlinks, müsstest Du die Lösung haben, oder?

Ciao, Thomas

hallo thomas,

vielen dank für deine schnelle antwort.
ohne deeine genannte url jezt angesehen zu haben,
hier eine nähere beschreibung:
ich hoffe, du kannst damit mehr anfangen:

ich benötige ein DHTML-Script, um Ebenen per Klick auszutauschen ( in allen grossen Browsern ).

Ich habe schon ohne Ende herumprobiert und bin langsam am verzweifeln.
Bin dankbar für jede Hilfe.

Ich habe zwei Scripts , welche aber nur teilweise funktionieren.

In Script 1 funtioniert in allen grossen Browsern ( IE, NN 4.7, NN 6.0, jedoch nur bei „onmouseover“ und nicht bei onclick.

In Script 2 funktioniert es so wie gewünscht, aber nur im IE und NN 4.7, nicht aber in NN 6.0

Ich habe die Quelltexte sowie auch Beispiele - da es so evt. leichter nachzuvollziehen ist -
ins Netz gestellt.

Unter folgender URL:
http://www.mouseover.f2s.com/dhtmltest.html

Wer hilft mir die Scripte anzupassen oder kann mir sagen, wo ich ein Script finde, welches bei Klick in allen Browser einen Ebenentausch vornimmt ?

Vielen Dank, Jürgen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Aha!
Ok - jetzt habe auch ich es verstanden :wink:

ich habe versucht, das Script anpassen,
aber es funktioniert nicht…

Da wäre ich als Browser auch etwas verwirrt: Zwei verschiedene OnClick-Ereignisse für ein Element? Na wat denn nu?!? Und dann noch ein Sprung auf „#“, den es auszuführen gilt… Puh! Wesentlich Browser-freundlicher ist diese Variante hier:

[...](javascript:void(showLayer('bild1')))

Und wenn Du möchtest, dass der erste Klick die Ebene hervorholt, und der zweite Klick die Ebene versteckt, lässt Du das onMouseOut-Event einfach weg und ersetzt showLayer() und hideLayer() durch switchLayer(). Dort prüfst Du den aktuellen Status, und stellst den jeweils anderen ein.

Alle Klarheiten beseitigt? :wink:

Thomas

hallo thomas,

lieben dank für deine hilfe.
leider bekommen ich es nicht so einfach hin.

>>Da wäre ich als Browser auch etwas verwirrt: Zwei verschiedene OnClick-Ereignisse für ein Element?
Na wat denn nu?!? Und dann noch ein Sprung auf „#“, den es auszuführen gilt… Puh! Wesentlich Browser-freundlicher
ist diese Variante hier:

[…](javascript:void(showLayer(‚bild1‘)))
>>

ja, das habe ich ausprobiert, hat auch soweit geklappt, aber das wäre ja nur
eine notlösung, da die ebenen ja bei mouseout vollständig verschwinden.

>>Und wenn Du möchtest, dass der erste Klick die Ebene hervorholt,
und der zweite Klick die Ebene versteckt, lässt Du das onMouseOut-Event
einfach weg und ersetzt showLayer() und hideLayer() durch switchLayer().
Dort prüfst Du den aktuellen Status, und stellst den jeweils anderen ein.
>>

ja, aber eben das ( switch layer, status prüfen ) kriege ich nicht so einfach hin, da
ich mich mit javascript halt nicht so gut auskenne.
ich habe es dann mal entsprechend meines scriptes folgendermassen versucht:

[link 1](javascript:void%20(auf(‚bild1‘)))

problem:
aber die ganzen ebenen schichten sich dann aufeinander, verschwinden tun die
ebenen aber nicht.

da ich es so nicht hinbekomme , habe ich eine grosse bitte:

könntest du mir das script anpassen und zusenden?
es würde mir wirklich helfen, auch die funktionsweise zu verstehen.
denn das ist mir wichtiger, als wenn ich von irgendwoher einfach nur scripte einbaue.

das script findest du ja, wie bereits beschrieben auf der url:

http://www.mouseover.f2s.com/dhtmltest.html

meine email-adresse lautet:
[email protected]

in der hoffnung dich nicht allzusehr zu nerven,
bis dann,
Jürgen

Here you are…
Hallo noch mal,

könntest du mir das script anpassen und zusenden?
es würde mir wirklich helfen, auch die funktionsweise zu
verstehen. denn das ist mir wichtiger, als wenn ich von
irgendwoher einfach nur scripte einbaue.

Also gut: Das angepasste Skript sieht jetzt wie folgt aus:

\<!--
var activeLayer = null;
function switchTo(LayerName) {
 if (activeLayer != null) {activeLayer.visibility = 'hidden';};
 if(document.all || document.layers || document.getElementById) {
 activeLayer=document.all ? document.all[LayerName].style :
 document.layers ? document[LayerName] :
 document.getElementById(LayerName).style;
 activeLayer.visibility = 'visible';
 }
}
//--\>


// dazwischen alles wie gehabt...

[link1](javascript:void(switchTo('bild1')))
[link2](javascript:void(switchTo('bild2')))

Und so funktioniert’s: Ich habe eine globale Variable „activeLayer“ dazugebaut, die (wie der Name schon andeutet) die gerade aktive Ebene enthält. Die neue Funktion „switchTo()“ (abgeleitet aus der alten Funktion „setVisibility()“) setzt nun zuallererst mal die aktive Ebene auf „hidden“. Dann sucht sie die neue Ebene, und setzt sie auf „visible“. Tja, und das isses dann auch schon…

Viel Spass damit! Thomas