Hi!
Mein Problem bringt mich schon zu Verzweiflung.
Auf meiner Seite habe ich eine Verschachtelung so gestaltet:
<table>
<tr><td><div id="object1" style="position:absolute; visibility:show; left:10px; top:13px; z-index:2; width: 40px; height: 14px">
<p><a href="news.htm" target="_top"><img src="../pics/layout/bnews.gif" width="152" height="29" border="0" vspace="2" alt="news" name="news"></a></p>
</div></td></tr></table>
Ein dazugehörendes ausgelagertes JavaScript sorgt dafür, dass dieser "Layer" mitscrollt, wenn man das Fenster scrollt:
function setVariables() {
if (navigator.appName == "Netscape") {
v=".top=";
dS="document.";
sD="";
y="window.pageYOffset";
}
else {
v=".pixelTop=";
dS="";
sD=".style";
y="document.body.scrollTop";
}}
function checkLocation() {
object="object1";
ya=eval(y);
eval(dS+object+sD+v+ya+'+13');
setTimeout("checkLocation()",5);
}
Das Script wird im <body> Tag initalisiert mit:
<body OnLoad="setVariables();checkLocation()">
Der Grund dieser Gestaltung ist, dass ein Benutzer mit aktiviertem JavaScript dieses Menü mitscrollen sieht, wenn die Seite gescrollt wird.
Hat der Benutzer kein JavaScript und evtl. keine Layer-Funktionalität, so wird das Menü trotzdem positioniert und zwar in der Tabelle.
Ich will auf jeden Fall Frames vermeiden.
Bisher funktioniert alles einwandfrei. Da ich mein Design jetzt mit mouseover-Effekt ändern möchte bin ich auf ein Problem gestossen:
Ich habe folgendes versucht. Die Zeile mit dem Bild habe ich so geändert...
<p><a href="news.htm" target="_top" onMouseOut="hilite(0,'news0')" onMouseOver="hilite(0,'news1')"><img src="../pics/layout/bnews.gif" width="152" height="29" border="0" vspace="2" alt="news" name="news"></a></p>
...und das Script so erweitert:
function preload(pfad) {
if (document.images) {
news0 = new Image(152,29); news0.src = pfad+"bnews.gif";
news1 = new Image(152,29); news1.src = pfad+"cnews.gif";
}}
function hilite(bild,bildname) {
if (document.images) {
document.images[bild].src = eval(bildname + ".src");
}}
Den body habe ich folgendermassen geändert:
<body OnLoad="setVariables();checkLocation();preload('../pics/layout/')">
Es sollte nun eigentlich funktionieren, tut es aber nur beim IE 5 (und wahrscheinlich auch IE 4). Netscape bringt einen JavaScript-Fehler.
Am Netscape 4.7 funktioniert es nicht. Komischerweise kann ich auch keinen Text und Bilder auf der Seite
auswählen, beim IE geht es.
Wer diesen Effekt nachvollziehen möchte kann ja selber mal probieren, Text auszuwählen:
http://www.w-4.de/~drmad/news.htm (noch ohne MouseOver...)
Wer kann mir bei diesem Problem helfen? Ist es evtl. ein Bug im NS 4.7? Muss ich evtl. den "Layer" irgendwie ansprechen? Wenn ja, wie?
Wie kriege ich den MouseOver-Effekt hin?
Hab hier im Forum leider nix gefunden.
Vielen Dank schon mal im voraus... :-)
Martin