mf_2
2007-05-04, 21:26:43
Hallo,
Ich wollte für eine Homepage nach rechts aufklappende Menüs machen.
Leider hat das Menü mehrere Ebenen, in etwa so:
Punkt 1 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
Punkt 2 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
- Seite 3
Punkt 3 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
Hier mein Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE></TITLE>
<style type="text/css">
#dynmenu {
position:absolute;
left:280px;
top:160px;
width:250px;
visibility:hidden; }
</STYLE>
<script type="text/javascript">
function hideLayer(layerName) {
if(document.getElementById)
document.getElementById(layerName).style.visibility='hidden';
if(document.all)
document.all[layerName].style.visibility='hidden';
if(document.layers)
document.layers[layerName].style.visibility='hidden';
}
function showLayer(layerName) {
if(document.getElementById)
document.getElementById(layerName).style.visibility='visible';
if(document.all)
document.all[layerName].style.visibility='visible';
if(document.layers)
document.layers[layerName].style.visibility='visible';
}
</script>
</HEAD>
<BODY background="bg.bmp" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0" onload="hideLayer('dynmenu')">
<TABLE border=0 cellpadding=0 cellspacing=0 width="100%" height="100%"><TR><TD align="center" style="vertical-align:middle;">
<DIV style="width:1000px; height:600px; border-color:white; border-width:1px; border-style:solid;">
<TABLE border=0 style="width:100%; height:100%;" cellpadding=5 cellspacing=5><TR style="height:540px; vertical-align:top;"><TD>
<div id="dynmenu">
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 1</a><br>
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 2</a><br>
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 3</a>
</div>
<BR>
<B><DIV onMouseOver="showLayer('dynmenu')" onMouseOut="hideLayer('dynmenu')"> | Punkt 1</DIV><P>
<BR>
| Punkt 2<P>
<BR>
| Punkt 3<P>
<BR>
| Punkt 4<P>
</B>
</TD></TR><TR style="height:50px; width=100%;"><TD class="logo"> </TD></TR></TABLE>
</DIV></TD></TR></TABLE>
</BODY></HTML>
Das die Höhe des aufklappenden Menüs nicht ganz stimmt, macht nichts, da ich den Code etwas auf das wesentliche reduziert habe.
Nun mein Problem:
Wenn ich mit der Maus über den Punkt 1 fahre, soll das Menü mit den dazugehörigen Unterpunkten erscheinen. Das geht auch. Wenn ich nun auf einen anderen Punkt fahre oder aus dem Menü weg, soll das Unterpunkte Menü wieder verschwinden. Das geht mit onMouseOut, ABER: Das verschwindet dann auch, wenn ich die Maus vom Punkt 1 in das Unterpunkte Menü bewegen will, und das ist natürlich käse!
Ich habe die 3te Ebene noch nicht erstellt, da ich denke dass sie analog zur 2ten Ebene funktioniert. Gibt es evtl. noch eine elegantere Lösung, mein Problem zu lösen?
Ich kenne mich leider mit JavaScript noch nicht wirklich aus.
Danke schonmal,
mf_2
Ich wollte für eine Homepage nach rechts aufklappende Menüs machen.
Leider hat das Menü mehrere Ebenen, in etwa so:
Punkt 1 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
Punkt 2 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
- Seite 3
Punkt 3 - Unterpunkt 1 - Seite 1
- Seite 2
- Seite 3
- Seite 4
- Unterpunkt 2 - Seite 1
- Seite 2
Hier mein Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE></TITLE>
<style type="text/css">
#dynmenu {
position:absolute;
left:280px;
top:160px;
width:250px;
visibility:hidden; }
</STYLE>
<script type="text/javascript">
function hideLayer(layerName) {
if(document.getElementById)
document.getElementById(layerName).style.visibility='hidden';
if(document.all)
document.all[layerName].style.visibility='hidden';
if(document.layers)
document.layers[layerName].style.visibility='hidden';
}
function showLayer(layerName) {
if(document.getElementById)
document.getElementById(layerName).style.visibility='visible';
if(document.all)
document.all[layerName].style.visibility='visible';
if(document.layers)
document.layers[layerName].style.visibility='visible';
}
</script>
</HEAD>
<BODY background="bg.bmp" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0" onload="hideLayer('dynmenu')">
<TABLE border=0 cellpadding=0 cellspacing=0 width="100%" height="100%"><TR><TD align="center" style="vertical-align:middle;">
<DIV style="width:1000px; height:600px; border-color:white; border-width:1px; border-style:solid;">
<TABLE border=0 style="width:100%; height:100%;" cellpadding=5 cellspacing=5><TR style="height:540px; vertical-align:top;"><TD>
<div id="dynmenu">
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 1</a><br>
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 2</a><br>
<a onClick="showLayer('dynmenu')" href="#">Unterpunkt 3</a>
</div>
<BR>
<B><DIV onMouseOver="showLayer('dynmenu')" onMouseOut="hideLayer('dynmenu')"> | Punkt 1</DIV><P>
<BR>
| Punkt 2<P>
<BR>
| Punkt 3<P>
<BR>
| Punkt 4<P>
</B>
</TD></TR><TR style="height:50px; width=100%;"><TD class="logo"> </TD></TR></TABLE>
</DIV></TD></TR></TABLE>
</BODY></HTML>
Das die Höhe des aufklappenden Menüs nicht ganz stimmt, macht nichts, da ich den Code etwas auf das wesentliche reduziert habe.
Nun mein Problem:
Wenn ich mit der Maus über den Punkt 1 fahre, soll das Menü mit den dazugehörigen Unterpunkten erscheinen. Das geht auch. Wenn ich nun auf einen anderen Punkt fahre oder aus dem Menü weg, soll das Unterpunkte Menü wieder verschwinden. Das geht mit onMouseOut, ABER: Das verschwindet dann auch, wenn ich die Maus vom Punkt 1 in das Unterpunkte Menü bewegen will, und das ist natürlich käse!
Ich habe die 3te Ebene noch nicht erstellt, da ich denke dass sie analog zur 2ten Ebene funktioniert. Gibt es evtl. noch eine elegantere Lösung, mein Problem zu lösen?
Ich kenne mich leider mit JavaScript noch nicht wirklich aus.
Danke schonmal,
mf_2