layermenü :(
karinsch
- javascript
Hallo!
Ich komm mit meinem Layermenü mit der 2. Ebene (Unteruntermenü) nicht weiter
Das hab ich bis jetzt. Könnt sich das bitte mal jemand ansehen, was da nicht stimmt - warum, wenn ich über den Unterbutton1 drüberfahre, dann nicht die Unterunterbutton1 + 2 kommen?
Vielen lieben Dank!!!
LG Karin!
<style type="text/css">
<!--
div#menucontainer {
position:absolute; z-index:1;
left:210px; top:0px;
width:565px;
border:0px;
}
div#menulink1 {
position:absolute; z-index:2;
left:8px; top:0px;
}
div#untermenu1 {
position:absolute; z-index:3; visibility:hidden;
left:6px; top:20px;
width:80pt;
}
div#unteruntermenu1 {
position:absolute; z-index:3; visibility:hidden;
left:6px; top:20px;
width:80pt;
}
div#menulink2 {
position:absolute; z-index:4;
left:140px; top:0px;
}
div#untermenu2 {
position:absolute; z-index:5; visibility:hidden;
left:138px; top:20px;
width:80pt;
}
div#menulink3 {
position:absolute; z-index:6;
left:225px; top:0px;
}
div#untermenu3 {
position:absolute; z-index:7; visibility:hidden;
left:222px; top:20px;
width:80pt;
}
-->
</style>
<script language="JavaScript">
<!--
// globale Browserflags setzen:
var dom = (document.getElementById) ? true : false; // ab IE5, NN6, u.a. Browser, die das Document Object Model unterstützen
var ie4 = (document.all && !dom) ? true : false;
var nn4 = (document.layers && !dom) ? true : false;
var op7 = (window.opera && document.body.innerHTML) ? true : false; // Opera 7 (falls spezieller Code nötig)
var op = (window.opera && !op7) ? true : false; // Opera (falls spezieller Code nötig)
// sonstige globale Variablen:
var overmenu = false; // bei true sollen die Menüs ausgeblendet werden
var overuntermenu = false; // bei true sollen die Untermenüs ausgeblendet werden
var timerid = null; // ID des Timeout
function getLayer(pname) // Referenz auf Ebene per ID holen:
{
if (dom) return document.getElementById(pname);
if (ie4) return eval('document.all.'+pname);
if (nn4) return findLayer(pname, document);
return null;
}
function findLayer(pname, doc) // Workarround um verschachtelte Layer im Netscape Navigator 4.x zu finden:
{
for (var i=0; i<doc.layers.length; i++) {
var layer = doc.layers[i];
if (layer.name == name) return layer;
if (layer.document.layers.length > 0) {
var layer = findLayer(pname, layer.document);
if (layer != null) return layer;
}
}
return null;
}
function hideLayer(obj) // Ebenen verstecken:
{
if (dom || ie4) obj.style.visibility = "hidden";
if (nn4) obj.visibility = "hide";
}
function showLayer(obj) // Ebenen anzeigen:
{
if (dom || ie4) obj.style.visibility = "visible";
if (nn4) obj.visibility = "show";
}
function showMenu(pname) // Untermenu anzeigen:
{
hideMenus();
showLayer(getLayer(pname));
overmenu = true;
}
function hideMenus() // Untermenüs verstecken:
{
hideLayer(getLayer("untermenu1"));
hideLayer(getLayer("untermenu2"));
hideLayer(getLayer("untermenu3"));
}
//function showUntermenu(pname) // Unteruntermenu anzeigen:
//{
// hideUntermenus();
// showLayer(getLayer(pname));
// overuntermenu = true;
//}
function hideUntermenus() // Unteruntermenüs verstecken:
{
hideLayer(getLayer("unteruntermenu1"));
}
function setHideMenus() // Initialisierung zum Verstecken der Untermenüs nach Verzögerungszeit:
{
overmenu = false;
if (timerid != null) clearTimeout(timerid); // laufenden Countdown anhalten
timerid = window.setTimeout(checkOverMenu, 1000); // Countdown zum Check auf Verstecken der Untermenüs
}
function setHideUntermenus() // Initialisierung zum Verstecken der Untermenüs nach Verzögerungszeit:
{
overuntermenu = false;
if (timerid != null) clearTimeout(timerid);
timerid = window.setTimeout(checkOverUntermenu, 1000);
}
function unsetHideMenus() // Untermenüs müssen nicht versteckt werden:
{
overmenu = true;
hideUntermenus();
//showLayer(getLayer(pname));
overuntermenu = true;
}
function unsetHideUntermenus() // Untermenüs müssen nicht versteckt werden:
{
overuntermenu = true;
}
function checkOverMenu() // Menüs verstecken?:
{
if (!overmenu) hideMenus();
}
function checkOverUntermenu() // Untermenüs verstecken?:
{
if (!overuntermenu) hideUntermenus();
}
//-->
</script>
<div id="menucontainer">
<div id="menulink1">
<a href="start.html" onmouseover="showMenu('untermenu1')" onmouseout="setHideMenus()">BUTTON 1</a>
</div>
<div id="untermenu1">
<table cellpadding="0" cellspacing="0">
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 1</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 2</a></td>
</tr>
</table>
</div>
<div id="unteruntermenu1">
<table cellpadding="0" cellspacing="0">
<tr>
<td><a href="seite.html" onmouseover="unsetHideUntermenus()" onmouseout="setHideUntermenus()">Unterunterbutton 1</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideUntermenus()" onmouseout="setHideUntermenus()">Unterunterbutton 2</a></td>
</tr>
</table>
</div>
<div id="menulink2">
<a href="#" onmouseover="showMenu('untermenu2')" onmouseout="setHideMenus()">BUTTON 2</a>
</div>
<div id="untermenu2">
<table cellpadding="0" cellspacing="0">
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 1</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 2</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 3</a></td>
</tr>
</table>
</div>
<div id="menulink3">
<a href="#" onmouseover="showMenu('untermenu3')" onmouseout="setHideMenus()">BUTTON 3</a>
</div>
<div id="untermenu3">
<table cellpadding="0" cellspacing="0">
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 1</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 2</a></td>
</tr>
<tr>
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 3</a></td>
</tr>
</table>
</div>
</div>
Hallo,
Ich komm mit meinem Layermenü mit der 2. Ebene (Unteruntermenü) nicht weiter
Das hab ich bis jetzt. Könnt sich das bitte mal jemand ansehen, was da nicht stimmt - warum, wenn ich über den Unterbutton1 drüberfahre, dann nicht die Unterunterbutton1 + 2 kommen?
Du hst für die unter-untermenüs sowas das stehten:
<td><a href="seite.html" onmouseover="unsetHideMenus()" onmouseout="setHideMenus()">Unterbutton 1.1</a></td>
es sollte aber sowas stehen:
<td><a href="seite.html" onmouseover="showMenu('unteruntermenu1')" onmouseout="setHideMenus()">Unterbutton 1.1</a></td>
Du muss damit ein wenig "experiementieren" damit es 100% klappt.
Grüße
Thomas