Hover effekt bei Netscape in verschachteltem Layer
Sven
- dhtml
Hallo!
Ich hoffe Ihr könnte mir helfen. Ich habe ein DHTML-Menü programmiert und will, dass die Menüpunkte auch bei Netscape einen Hover effekt haben. Ich habe auch schon das Beispiel aus der Forumsauslese probiert, dieses funktioniert leider nur bei <layer>-Tags und nicht bei <ilayer>-Tags. Das Problem ist, das das Menü selbst schon ein Layer ist, der dynamisch positioniert und angezeigt wird. Ich kann/will also keine <layer>-Tags mit absoluter Position benutzen.
Für die DHTML-Funktionen benutze ich die dhtmllib von http://www.brainjar.com.
Ich poste hier einfach noch ein paar ausschnitte aus dem Quellcode:
<style>
A.mover:link {color:#0000ff; text-decoration: underline;}
A.mout:link {color:#000000; text-decoration: none;}
A:link {color:#000000; text-decoration: none;}
A:visited {color:#000000; text-decoration: none;}
A:hover {color:#0000ff; text-decoration: underline;}
</style>
[...]
// DHTML Funktionenen für hover-Effekt im Netscape Navigator
function m_over(a1,a2,a3)
{
if (document.layers)
{
inhalt='<a class="mover" href="'+a3+'" onMouseOut="m_out(''+a1+'',''+a2+'',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>'+a2+'</nobr></font></a>';
a1 = findLayer(a1, document);
a1.document.open();
a1.document.write(inhalt);
alert(inhalt);
a1.document.close();
}
}
function m_out(b1,b2,b3)
{
if (document.layers)
{
inhalt='<a class="mout" href="'+b3+'" onMouseOver="m_over(''+b1+'',''+b2+'',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>'+b2+'</nobr></font></a>';
b1 = findLayer(b1, document);
b1.document.open();
b1.document.write(inhalt);
alert(inhalt);
b1.document.close();
}
}
[...]
menu1 = '<table border="1" bgcolor="E8E8E8" bordercolor="#000000" cellpadding="0" cellspacing="0">'
+ '<tr><td>'
+ '<table bgcolor="E8E8E8">'
+ ' <tr>'
+ ' <td><ilayer name="M1P1"><a href="%" onMouseOver="m_over('M1P1',\Menupunkt',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>Menupunkt</nobr></font></a></ilayer></td>'
+ ' </tr>'
+ ' <tr>'
+ ' <td><ilayer name="M1P2"><a href="%" onMouseOver="m_over('M1P2',\Menupunkt',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>Menupunkt</nobr></font></a></ilayer></td>'
+ ' </tr>'
+ ' <tr>'
+ ' <td><ilayer name="M1P3"><a href="%" onMouseOver="m_over('M1P3',\Menupunkt',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>Menupunkt</nobr></font></a></ilayer></td>'
+ ' </tr>'
+ ' <tr>'
+ ' <td><ilayer name="M1P4"><a href="%" onMouseOver="m_over('M1P4',\Menupunkt',this.href)"><font face="Arial,Helvetica,sans-serif" size="2"><nobr>Menupunkt</nobr></font></a></ilayer></td>'
+ ' </tr>'
+ ' </table>'
+ '</td></tr>'
+ '</table>';
[...]
if (isMinNS4)
str = '<layer name="menu1" width="114" left="28" top="0" visibility="hidden">'
+ menu1
+ '</layer>';
if (isMinIE4)
str = '<div id="menu1" style="width: 114px; visibility: hidden; position: absolute; top: 9px; left: 28px;">'
+ menu1
+ '</div>';
document.writeln(str);
var menu1= getLayer("menu1");
Momentan tritt folgender Fehler auf:
Wenn ich mit der Maus im NS-Navigator über einen Menüpunkt fahre verschwindet er vollkommen. Es wird in der Konsole keine Fehlermeldung ausgegeben.
Vielleicht habe ich auch den falschen Ansatz gewählt.
Schon mal Danke für Antworten!
Grüße
Sven