Hauptmenü
Ein Mini-
Wichtig! Es muss in Verbindung mit CSS genutzt werden.
Leider funktioniert der Code nur problemlos, wenn eine separate html-
Die beiliegende html-
Style und Größe sind über die Style-
Code für das HTML-
<iframe name="cascade" src="cascade_menu.html" frameborder="0" width="160" height="220" scrolling="no"></iframe>
Code der HTML-
<html>
<body style="background-
<style type="text/css">
<!-
.menu
{
background-
border: 1px solid #008;
font-
position: absolute;
font-
padding-
font-
cursor: pointer;
width: 150px;
color: #fff;
}
.item_panel
{
border-
border-
clip: rect(0, 150, 0, 0);
position: absolute;
width: 150px;
}
.item_panel a
{
text-
cursor: pointer;
color: #000;
}
.item
{
background-
font-
font-
width: 148px;
}
//-
<script type="text/javascript">
<!-
var Link = new Array();
Link[1] = '1|Untermenü 1.1|http://www.|target="_parent"|';
Link[2] = '1|Untermenü 1.2|http://www.|target="_blank"|';
Link[3] = '1|Untermenü 1.3|http://www.|';
Link[4] = '1|Untermenü 1.4|http://www.|';
Link[5] = '0|Hauptmenü 2';
Link[6] = '1|Untermenü 2.1|http://www.|';
Link[7] = '1|Untermenü 2.2|http://www.|'
Link[8] = '0|Hauptmenü 3';
Link[9] = '1|Untermenü 3.1|http://www.|';
Link[10] = '1|Untermenü 3.2|http://www.|';
Link[11] = '0|Hauptmenü 4';
Link[12] = '1|Untermenü 4.1|http://www.|target="_blank"|';
var height = 20; // Höhe der Menüköpfe
var iheight = 15; // Höhe der Menüelemente
var bgc = '#e9f0f8' // Hintergrundfarbe Untermenüs
var over_bgc = '#fff'; // Mouseover Hintergrundfarbe
var tc = '#000' // Textfarbe
var over_tc = '#004891'; // Mouseover Textfarbe
var speed = 0;
var timerID = 0;
var width = 152;
var N = (document.all) ? 0 : 1;
var self_menu = new Array();
function write_menu()
{
smc = 0;
mn = 0;
mni = 1;
start = -
document.write('<div style="position: absolute;">');
for (var i = 0; i < Link.length; i++)
{
la = Link[i].split('|');
if (la[0] == 0)
{
if (start == 0)
{
document.write('</div>');
h = csmc * iheight;
tmn = mn; // -
self_menu[smc] = new Array(tmn, h, 0, -
smc++;
mn-
}
csmc = 0;
document.write('<div id="down' + smc + '" class="menu" '
+ 'style="top: ' + mn + 'px; height: ' + height + 'px;" '
+ 'onclick="pull_down(' + smc + ', ' + mni + ');">'
+ ' ' + la[1] + '</div>');
self_menu[smc] = new Array(mn, height, 0, mni);
smc++;
mni++;
mn += height;
start = 1;
}
else
{
if (start == 1)
{
if (N)
mn += 2;
document.write('<div id="down' + smc + '" class="item_panel" '
+ 'style="top: '+ mn + 'px;">');
start = 0;
}
document.write('<a href="' + la[2] + '"'
+ ((la[3] != '') ? ' target="' + la[3] + '"' : '')
+ '><div id="d' + i + '" class="item" '
+ 'style="height: ' + iheight + 'px;'
+ ((N) ? ' width:150px;' : '')
+ '" onmouseover="color(this.id);" '
+ 'onmouseout="uncolor(this.id);">'
+ ' ' + la[1] + '</div></a>');
csmc++;
}
}
if (start == 0)
{
document.write('</div>');
h = csmc * iheight;
tmn = mn + 5; // -
self_menu[smc] = new Array(tmn, h, 0);
name = 'down' + (self_menu.length -
obj = document.getElementById(name);
obj.style.borderBottomColor = '#008';
obj.style.borderBottomWidth = '1px';
obj.style.borderBottomStyle = 'solid';
}
document.write('</div>');
}
function color(obj)
{
document.getElementById(obj).style.backgroundColor = over_bgc;
document.getElementById(obj).style.color = over_tc;
}
function uncolor(obj)
{
document.getElementById(obj).style.backgroundColor = bgc;
document.getElementById(obj).style.color = tc;
}
function pull_down(nr, c)
{
if (timerID == '')
{
to = self_menu[nr + 1][1]
begin = nr + 2;
if (timerID != '')
clearTimeout(timerID);
if (self_menu[nr + 1][2] == 0)
{
self_menu[nr + 1][2] = 1;
if (nr == (self_menu.length -
to++;
epull_down(begin, to, 0);
}
else
{
to = 0;
self_menu[nr + 1][2] = 0;
name = 'down' + (nr + 2);
open_item = 0;
for (var i = 0; i < nr; i++)
if (self_menu[i][2] == 1)
open_item += self_menu[i][1];
if (N == false)
open_item -
if (nr == (self_menu.length -
{
val = self_menu[self_menu.length -
to = -
}
else
val = parseInt(document.getElementById(name).style.top) -
epull_up(begin, to, val);
}
}
}
function epull_down(nr, to, nowv)
{
name = 'down' + (nr -
obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + (nowv + 1) + ', 0)';
for (var i = nr; i < self_menu.length; i++)
{
name = 'down' + i;
obj = document.getElementById(name);
obj.style.top = parseInt(obj.style.top) + 1;
}
nowv++;
if (nowv < to)
timerID = setTimeout('epull_down(' + nr + ', ' + to + ', ' + nowv + ');', speed);
else
timerID = 0;
}
function epull_up(nr, to, nowv)
{
name = 'down' + (nr -
obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + nowv + ', 0)';
for (var i = nr; i < self_menu.length; i++)
{
name = 'down' + i;
obj = document.getElementById(name);
obj.style.top = parseInt(obj.style.top) -
}
nowv-
if(nowv > to)
timerID = setTimeout('epull_up(' + nr + ', ' + to + ', ' + nowv + ');', speed);
else
timerID = 0;
}
function startup(nr)
{
write_menu();
if (nr != 0)
{
for (var i = 0; i < self_menu.length; i++)
{
if (self_menu[i][3] == nr)
pull_down(i, nr);
i == self_menu.length;
}
}
}
//-
</script>
<script type="text/javascript">
<!-
startup(1);
//-
</script>
</body>
</html>