nn & ie & absolute positionierung (css) & onmouseover
ron hartleb
- html
0 Markus Thomas0 ron0 Markus Thomas0 ron
0 Jascha U.
hi,
es ist wohl keine frage, dass das schwierigste an html die browser sind. folgendes problem: ich habe einen onmouseover-effekt für eine grafik und möchte die grafik absolut positionieren. die positionierung erfolgt mit <div style="position:absolute; left:...; top...; ......"> oder <table style=".....">. soweit so gut, leider meldet dann der nn für das java-script einen fehler (document.images[imgID] has no properties) und führt es demzufolge nicht aus. für den ie alles kein problem. es ist mir schon klar, dass netscape hier das <layer>-tag vorsieht, aber jeder weiss, was der ie dazu sagt. noch möchte ich mir aber die arbeit sparen für jeden browser eigene *.html-dateien zu erstellen.
okay, vielen dank im voraus,
ron.
hier nochmal der genaue quelltext:
<div style="position:absolute; left:100px; top:225px; width:573px">
<a href="default2.shtml" ONMOUSEOVER="hiLite('i01','i01h'); return true" ONMOUSEOUT="hiLite('i01','i01')">
<img name="i01" src="images/logo4.gif" width="573" height="130" border="0" alt="">
</a>
</div>
und das java-script:
<script language="JavaScript">
<!--
i01 = new Image();
i01.src = "images/logo4.gif"; /* Standard-Grafik */
i01h = new Image();
i01h.src = "images/logo4a.gif"; /* Highlight-Grafik */
function hiLite(imgID,imgObjName) {
// imgID - Name oder Nummer des auszutauschenden Bildes
// imgObjName - Name des Bildes mit dem ausgetauscht wird
document.images[imgID].src = eval(imgObjName + ".src")
}
//-->
</script>
Hallo!
Das Problem das Netscape hat, ist der Layer:
if (document.layers)
document.layers[0].document.images[imgID].src = eval(imgObjName + ".src");
else
document.images[imgID].src = eval(imgObjName + ".src");
HTH
Markus
Hallo!
Das Problem das Netscape hat, ist der Layer:
if (document.layers)
document.layers[0].document.images[imgID].src = eval(imgObjName + ".src");
else
document.images[imgID].src = eval(imgObjName + ".src");
HTH
Markus
danke. hat geklappt. allerdings heißt es document.layers[1]. das hat mich dann doch sehr viel zeit gekostet.
mfg ron.
Hallo!
allerdings heißt es document.layers[1]. das hat mich dann doch sehr viel zeit gekostet.
Woher sollte ich das wissen? In Deinem Posting hattest Du nur einen Layer angegeben. Wenn davor noch ein anderer Layer kommt ist der Index natürlich 1. Einfacher geht es noch, in dem Du den Layern Namen gibst:
<div id="blabla" style...>
...
</div>
document.layers["blabla"].document.images....
Gruß Markus
Hallo!
allerdings heißt es document.layers[1]. das hat mich dann doch sehr viel zeit gekostet.
Woher sollte ich das wissen? In Deinem Posting hattest Du nur einen Layer angegeben. Wenn davor noch ein anderer Layer kommt ist der Index natürlich 1. Einfacher geht es noch, in dem Du den Layern Namen gibst:
<div id="blabla" style...>
...
</div>
document.layers["blabla"].document.images....
Gruß Markus
keine ahnung warum du das nicht wissen konntest. sollte auch kein vorwurf sein. jedenfalls funktioniert es jetzt, das ist die hauptsache. nochmals danke.
Hallo,
jedenfalls funktioniert es jetzt, das ist die hauptsache.
vollkommen ungefragt und Oberlehrerhaft und mit einem ;-) schreibe ich jetzt hier mal: nein, ist nicht die haubtsache. Wichtig ist doch, daß Du hier verstehst, warum 1 und nicht 0 da rein soll und warum es sogar besser ist, dem div einen namen zu geben, denn sonst läufst Du unter Umständen bald wieder auf dieses Problem auf. Kann natürlich sein, daß Du es längst verstanden hast, dann ist mein Posting in der Tat noch überflüssiger als so schon ;-)
Chräcker
hi,
das Problem ist, das der NN jedem Layer ein eigenes document-Objekt unterstellt und kein all[]-Array wie z.B der IE... Deshalb müsstest du das jeweilige Bild über document.layers[0].document.images[imgID] ansprechen... ich hoffe ich irre mich nicht total, aber so dürfte es eigentlich funktionieren...