# Problem



## Guest (10. Okt 2004)

Vorerstmal Hallo an alle. Bin neu hier und habe eigentlich auch überhaupt keine Ahnung von java. Ich habe irgendwo im Netz ein Menü gefunden, dass mir gut gefallen hat und habe das übernommen und mich ein bißchen damit gepsielt.
aber einige dinge funktionieren nun nicht emrh so ganz. ich bräuchte dringend hilfe, da ich zum ersten mal mit java was zu tun habe.

was nicht mehr geht und vorher ging:

wenn ich nun einen menü kopf geöffnet habe und ich wieder darauf clicke sollte er eigenlich schließen, aber er schließt nicht mehr.

andere probleme:

wo kann ich einstellen, mit wieviel einzug (also abstand zum linken rand) das menü erscheint (gibts da irgendwas wo ich die pixel zum rand festlegen kann?)

ich hätte gerne, dass der menükopf nicht zwangsläufig eine "liste der untermenüs" ausfährt so wie jetzt, sondern, dass auch der menükopf selbst ein direkter link sein kann (zB zur Startseite => Home)

Nun der Quellcode 
	
	
	
	





```
<html>
<head>
 
 <title>Cascade Menu</title>
 <style type="text/css">
 <!--
  body {
	font: 12px tahoma;
	background-image: url(../Grafiken/LEft%20Frame%20helles%20braun.jpg);
} 
 //-->
 </style>
<script language="JavaScript">
function goToURL() { history.go(-1); }
</script>
  <style>
  .menu 
  {
   background-color:#939598;
   border:1px solid black;
   width:150px;
   font-size:12px;
   font-family:verdana;
   position: absolute;
   font:bold;
   color: white;
   cursor: hand;
   text-align: left;
  }
  .item_panel
  {
    width:150px;
    border-left:1px solid black;
    border-right:1px solid black;
    clip:rect(0,150,0,0);
    position:absolute;
  }
  .item_panel a
  {
   text-decoration:none;
   color:black;
   cursor:hand;
  }
  .item
  {
   background-color: #DDDFE1;
   width: 148px;
   font-size: 11px;
   font-family: verdana;
   text-align: right;
  }
  </style>
  
  <script language="JavaScript">  
  var height = 20; // Hoehe der Menuekoepfe
  var iheight = 16; // Hoehe der Menueelemente 
  var bgc = "#DDDFE1" // background color of the item
  var tc = "black" // text color of the item  
  var over_bgc = "FFC600"; // Farbe des Rollover beim item
  var over_tc = "black";  // Farbe der Schrift beim Rollover
  var speed = 0;
  var timerID = "";
  var N = (document.all) ? 0 : 1;
  var width = 152;
  var self_menu = new Array();
function write_menu()
{
  smc = 1; // count the position of the self_menu
  document.write("<div style='position:absolute'>");
  mn = 0;
  mni = 1;
  start = -1;  
  for(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; //-h
      self_menu[smc] = new Array(tmn,h,0,-2);
      smc++;
      mn--;
     }
     csmc = 0;
    document.write("<div class='menu' style='top:"+mn+";height:"+height+"' id='down"+smc+"' 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 class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");
       start = 0;
     }
    
    document.write("<a href='"+la[2]+"'");
    if (la[3] != "") document.write(" target='" + la[3] + "' ");
    document.write("><div class='item' id='d"+i+"' style='height:"+iheight);
    if (N) document.write(";width:150");
    document.write("' 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; //-h
     self_menu[smc] = new Array(tmn,h,0);
     name = "down" + (self_menu.length-1);
     obj = document.getElementById(name);
     obj.style.borderBottomColor = "black";
     obj.style.borderBottomWidth = 1;
     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-2) {to++;}
  epull_down(begin,to,0);
 }
 else
 {
  to = 0;
  self_menu[nr+1][2] = 0;
  name = "down"+(nr+2);
  open_item = 0;
  for(i=0;i<nr;i++)
  {
   if(self_menu[i][2] == 1) 
    {open_item += self_menu[i][1];
    }
  }
  if (N == false) {open_item-= (c*1)};
  if (nr== self_menu.length-2) {val = self_menu[self_menu.length-1][1];to=-1;}
  else  val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);
  epull_up(begin,to,val);
 }
 }
}

function epull_down(nr,to,nowv)
{
 name = "down" + (nr-1);
 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+1)+",0)";
 for (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 = "";
}

function epull_up(nr,to,nowv)
{
 name = "down" + (nr-1);
 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+nowv+",0)";
 for (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_up("+nr+","+to+","+nowv+")",speed);
 else timerID = "";
}

function startup(nr)
{
 write_menu();
 if (nr != 0)
 {
 for(i=0;i<self_menu.length;i++)
 {
  if(self_menu[i][3] == nr) pull_down(i,nr)
  i==self_menu.length;
 }
 }
}  
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<table width=150>
<tr>
<td>
<script language="JavaScript">
      //Link[nr] = "Position [0 ist für das menu/1 ist für das item],Link name,url,target (blank|top|frame_name)"
  var Link = new Array();
  Link[0] = "0|Home";
  Link[1] = "1|Startseite|";
  Link[2] = "1|eMail|";
  Link[3] = "0|Die Apotheke";
  Link[4] = "1|Unser Team|";
  Link[5] = "1|Wie Sie uns finden|http://www.javarea.de|";
  Link[6] = "1|Kontakt|";
  Link[7] = "0|News";
  Link[8] = "1|Die neuesten Medlungen";
  Link[9] = "1|Fotos";
  Link[10] = "0|TCM";
  Link[11] = "1|Über die TCM|http://.|";
  Link[12] = "1|Das besondere Service|http://.|";
  Link[13] = "1|TCM Folder '04|";
  Link[14] = "0|Noch mehr Service!";
  Link[15] = "1|Homöopathie|http://.|";
  Link[16] = "1|Bachblüten|http://.p|";
  Link[17] = "1|Tees|";
  Link[18] = "1|Die Salben des Hauses|";
  Link[19] = "0|Weiters";
  Link[20] = "1|eMail|mailto:mag.fiala@adler-apotheke.at|";
  Link[21] = "1|Impressum|";

  startup(7);
  </script>
  </td>
 </tr>
</table>
</body>

</html>
```

Vielen Dank im vorhinen Paul


----------



## Guest (10. Okt 2004)

ach ja hab noch was vergessen:

was auch noch super wäre, wenn das gehen würde, wäre dass ein rollover effekt beim menükopf wäre (so wie es ja auch beim submenü ist) wenn man mit der maus drüber fährt.

wie gesagt: ich hab leider gar keine ahnung von java....


----------



## stev.glasow (10. Okt 2004)

*verschoben*
http://www.java-forum.org/de/viewtopic.php?t=6099


----------

