rollover in layern (div)

biancaott

Grünschnabel
liebes forum,

habe mal wieder eine rollover-frage.
mein rollover funktioniert perfekt mit dem ie nicht aber mit dem netscape (was ein wunder :). ich weiß auch woran es liegt, kann das problem aber trotzdem nicht lösen - mir fehlt einfach das java-script wissen.

also, ich benutze folgendes script:


Normal1 = new Image();
Normal1.src = "images/kamera.gif"; /* erste Standard-Grafik */
Highlight1 = new Image();
Highlight1.src = "images/kamera-over.gif"; /* erste Highlight-Grafik */


function Bildwechsel(Bildnr,Bildobjekt) {
window.document.images[Bildnr].src = Bildobjekt.src;


und die dazugehörigen event-handler:

<a href="#"
onMouseOver="Bildwechsel(1,Highlight1)"
onMouseOut="Bildwechsel(1,Normal1)">
<img name="kamera" src="images/kamera.gif" width="290" height="43" border="0"></a>


der rollover-effekt soll in einem DIV (mit dem namen: #content) sattfinden, der ie findet den event-handler dort, nicht aber der netscape. Ich muß ihm in der <function Bildwechsel> sagen wo sich der event-handler befindet! wie mache ich das? wie muß die browserweiche aussehen?

es wäre ganz toll, wenn ihr mir helfen könntet.
vielen dank schon mal.

bianca
 
Sieht alles verträglich aus, aber
PHP:
window.document.images[Bildnr].src = Bildobjekt.src;
referenziert afaik nix existentes.

Was genau meinst du aber mit dem <div>?
Wann soll ein rollOver worüber wo einen Bildwechsel erzeugen?

Geist
 

hallo geist,

also das ganze soll folgendermaßen aussehen (in kurzform):



<style type="text/css">
#content { position:absolute; z-index:1; left:355px; top:0px; background-color:#0099CC; layer-background-color:#0099CC;}
</style>

<script type="text/javascript">
<!--
Normal1 = new Image();
Normal1.src = "images/menschen.gif"; /* erste Standard-Grafik */
Highlight1 = new Image();
Highlight1.src = "images/menschen-over.gif"; /* erste Highlight-Grafik */

Normal2 = new Image();
Normal2.src = "images/technik.gif"; /* zweite Standard-Grafik */
Highlight2 = new Image();
Highlight2.src = "images/technik-over.gif"; /* zweite Highlight-Grafik */

function Bildwechsel(Bildnr,Bildobjekt) {
window.document.images[Bildnr].src = Bildobjekt.src;
}
//-->
</script>

<div id="content">
<table width=290 border=0 cellpadding=0 cellspacing=0>

<tr>
<td>
<a href="menschen/menschen.html"
onMouseOver="Bildwechsel(3,Highlight1)"
onMouseOut="Bildwechsel(3,Normal1)">
<img name="menschen" src="images/menschen.gif" width=290 height=44 border=0></a>
</td>
</tr>

<tr>
<td>
<a href="technik/technik.html"
onMouseOver="Bildwechsel(7,Highlight2)"
onMouseOut="Bildwechsel(7,Normal2)">
<img name="technik" src="images/technik.gif" width=290 height=43 border=0></a></td>
</tr>


die funktion soll also in dem layer "content" einen bildwechsel erzeugen. soweit ich weiß, muß man dem netscape das auch mitteilen. z.B in dem man in der funktion "Bildwechsel" anstatt:

window.document.images[Bildnr].src = Bildobjekt.src; folgendes schreibt:
content.document.images[Bildnr]...
oder ähnliches (diese variante funktioniert nämlich nicht). wenn das dann getan ist muß man eine browserweiche einbauen, da dies ja nur für den netscape gilt. bei beidem bräuchte ich deine bzw. eure hilfe ...

vielen dank nochmal
bianca
 
Zuletzt bearbeitet:
Oha, mich hatte die Mailflut mal wieder überrollt, da ist der Thread hier untergegangen, sorry. :(

Auch auf die "Gefahr" hin, dass du schon anderweitig Hilfe gefunden hast, bzw. das ganze selbst vergessen hast:
PHP:
document.images[Bildnr].src = Bildobjekt.src;
ist für alle relevanten Browser verständlich (getestet auf IE6, NN7, Moz 1.0, Opera6), hatte da die Geschichte mit dem images-Array und anderen Seitenelementen durcheinandergehauen, denn das images-Array gehört ja auch beim IE nicht in's Array "all"... :)

Ich hab's damit auf den o.g. Browsern hinbekommen, 2 Bilder beim rollOver wechseln zu lassen, wüßte also nicht, wo da der Fehler liegen soll.

Evtl. kannst du ja mal auf deine Seite verlinken, falls es wirklich einen Fehler gibt, dann schau ich's mir mal an...in dem Falle dann hoffentlich auch etwas schneller. *schäm*

have a nice day,
Geist
 

Neue Beiträge

Zurück