Problemen Java Menu

Status
Niet open voor verdere reacties.

Renze

Gebruiker
Lid geworden
13 jun 2003
Berichten
112
Ik heb een menu gedownload van een website. Bevalt me prima. Maar als je op het menu klikt om een pagina te bekijken dan blijft de menu open staan. Deze wil ik graag dat deze weer sluit. Ook als je menu's bekijkt blijft open. Kan hiemand mij vertellen hoe ik dat moet doen ? Het voorbeeld is te zien op http://www.valeriuskwartier.nl.nu

Hieronder de code:

<style>
all.clsMenuItemNS{font: bold x-small Verdana; color: white; text-decoration: none;}
.clsMenuItemIE{text-decoration: none; font: bold xx-small Verdana; color: white; cursor: hand;}
A:hover {color: blue;}
</style>
<script language="JavaScript">if (document.all) {n=0;ie=1;fShow="visible";fHide="hidden";}
if (document.layers) {n=1;ie=0;fShow="show"; fHide="hide";}

window.onerror=new Function("return true")
rightX = 0;
function Menu()
{
this.bgColor = "#D8D8D8";
if (ie) this.menuFont = "bold xx-small Verdana";
if (n) this.menuFont = "bold x-small Verdana";
// this.fontColor = "white";

this.addItem = addItem;
this.addSubItem = addSubItem;
this.showMenu = showMenu;
this.mainPaneBorder = 0;
this.subMenuPaneBorder = 0;

this.subMenuPaneWidth = 120;

lastMenu = null;

rightY = 0;
leftY = 0;
leftX = 0;

HTMLstr = "";
HTMLstr += "<!-- MENU PANE DECLARATION BEGINS -->\n";
HTMLstr += "\n";
if (ie) HTMLstr += "<div id='MainTable' style='position:relative'>\n";
// if (n) HTMLstr += "<layer name='MainTable'>\n";
HTMLstr += "<table width='100%' bgcolor='"+this.bgColor+"' border='"+this.mainPaneBorder+"'>\n";
HTMLstr += "<tr>";
if (n) HTMLstr += "<td> ";
HTMLstr += "<!-- MAIN MENU STARTS -->\n";
HTMLstr += "<!-- MAIN_MENU -->\n";
HTMLstr += "<!-- MAIN MENU ENDS -->\n";
if (n) HTMLstr += "</td>";
HTMLstr += "</tr>\n";
HTMLstr += "</table>\n";
HTMLstr += "\n";
HTMLstr += "<!-- SUB MENU STARTS -->\n";
HTMLstr += "<!-- SUB_MENU -->\n";
HTMLstr += "<!-- SUB MENU ENDS -->\n";
HTMLstr += "\n";
if (ie) HTMLstr+= "</div>\n";
// if (n) HTMLstr+= "</layer>\n";
HTMLstr += "<!-- MENU PANE DECALARATION ENDS -->\n";
}

function addItem(idItem, text, hint, location, altLocation)
{
var Lookup = "<!-- ITEM "+idItem+" -->";
if (HTMLstr.indexOf(Lookup) != -1)
{
alert(idParent + " already exist");
return;
}
var MENUitem = "";
MENUitem += "\n<!-- ITEM "+idItem+" -->\n";
if (n)
{
MENUitem += "<ilayer name="+idItem+">";
MENUitem += "<a href='.' class=clsMenuItemNS onmouseover=\"displaySubMenu('"+idItem+"')\" onclick=\"return false;\">";
MENUitem += "| ";
MENUitem += text;
MENUitem += "</a>";
MENUitem += "</ilayer>";
}
if (ie)
{
MENUitem += "<td>\n";
MENUitem += "<div id='"+idItem+"' style='position:relative; font: "+this.menuFont+";'>\n";
MENUitem += "<a ";
MENUitem += "class=clsMenuItemIE ";
// MENUitem += "style='text-decoration: none; font: "+this.menuFont+"; color: "+this.fontColor+"; cursor: hand;' ";
if (hint != null)
MENUitem += "title='"+hint+"' ";
if (location != null)
{
MENUitem += "href='"+location+"' ";
MENUitem += "onmouseover=\"hideAll()\" ";
}
else
{
if (altLocation != null)
MENUitem += "href='"+altLocation+"' ";
else
MENUitem += "href='.' ";
MENUitem += "onmouseover=\"displaySubMenu('"+idItem+"')\" ";
MENUitem += "onclick=\"return false;\" "
}
MENUitem += ">";
MENUitem += "| \n";
MENUitem += text;
MENUitem += "</a>\n";
MENUitem += "</div>\n";
MENUitem += "</td>\n";
}
MENUitem += "<!-- END OF ITEM "+idItem+" -->\n\n";
MENUitem += "<!-- MAIN_MENU -->\n";

HTMLstr = HTMLstr.replace("<!-- MAIN_MENU -->\n", MENUitem);
}

function addSubItem(idParent, text, hint, location)
{
var MENUitem = "";
Lookup = "<!-- ITEM "+idParent+" -->";
if (HTMLstr.indexOf(Lookup) == -1)
{
alert(idParent + " not found");
return;
}
Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->";
if (HTMLstr.indexOf(Lookup) == -1)
{
if (n)
{
MENUitem += "\n";
MENUitem += "<layer id='"+idParent+"submenu' visibility=hide bgcolor='"+this.bgColor+"'>\n";
MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+">\n";
MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
MENUitem += "</table>\n";
MENUitem += "</layer>\n";
MENUitem += "\n";
}
if (ie)
{
MENUitem += "\n";
MENUitem += "<div id='"+idParent+"submenu' style='position:absolute; visibility: hidden; width: "+this.subMenuPaneWidth+"; font: "+this.menuFont+"; top: -300;'>\n";
MENUitem += "<table border='"+this.subMenuPaneBorder+"' bgcolor='"+this.bgColor+"' width="+this.subMenuPaneWidth+">\n";
MENUitem += "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
MENUitem += "</table>\n";
MENUitem += "</div>\n";
MENUitem += "\n";
}
MENUitem += "<!-- SUB_MENU -->\n";
HTMLstr = HTMLstr.replace("<!-- SUB_MENU -->\n", MENUitem);
}

Lookup = "<!-- NEXT ITEM OF SUB MENU "+ idParent +" -->\n";
if (n) MENUitem = "<tr><td><a class=clsMenuItemNS title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";
if (ie) MENUitem = "<tr><td><a class=clsMenuItemIE title='"+hint+"' href='"+location+"'>"+text+"</a><br></td></tr>\n";
MENUitem += Lookup;
HTMLstr = HTMLstr.replace(Lookup, MENUitem);

}

function showMenu()
{
document.writeln(HTMLstr);
}

function displaySubMenu(idMainMenu)
{
var menu;
var submenu;
if (n)
{
submenu = document.layers[idMainMenu+"submenu"];
if (lastMenu != null && lastMenu != submenu) hideAll();
submenu.left = document.layers[idMainMenu].pageX;
submenu.top = document.layers[idMainMenu].pageY + 25;
submenu.visibility = fShow;

leftX = document.layers[idMainMenu+"submenu"].left;
rightX = leftX + document.layers[idMainMenu+"submenu"].clip.width;
leftY = document.layers[idMainMenu+"submenu"].top+
document.layers[idMainMenu+"submenu"].clip.height;
rightY = leftY;
} else if (ie) {
menu = eval(idMainMenu);
submenu = eval(idMainMenu+"submenu.style");
submenu.left = calculateSumOffset(menu, 'offsetLeft');
// submenu.top = calculateSumOffset(menu, 'offsetTop') + 30;
submenu.top = menu.style.top+23;
submenu.visibility = fShow;
if (lastMenu != null && lastMenu != submenu) hideAll();

leftX = document.all[idMainMenu+"submenu"].style.posLeft;
rightX = leftX + document.all[idMainMenu+"submenu"].offsetWidth;

leftY = document.all[idMainMenu+"submenu"].style.posTop+
document.all[idMainMenu+"submenu"].offsetHeight;
rightY = leftY;
}
lastMenu = submenu;
}

function hideAll()
{
if (lastMenu != null) {lastMenu.visibility = fHide;lastMenu.left = 0;}
}

function calculateSumOffset(idItem, offsetName)
{
var totalOffset = 0;
var item = eval('idItem');
do
{
totalOffset += eval('item.'+offsetName);
item = eval('item.offsetParent');
} while (item != null);
return totalOffset;
}

function updateIt(e)
{
if (ie)
{
var x = window.event.clientX;
var y = window.event.clientY;

if (x > rightX || x < leftX) hideAll();
else if (y > rightY) hideAll();
}
if (n)
{
var x = e.pageX;
var y = e.pageY;

if (x > rightX || x < leftX) hideAll();
else if (y > rightY) hideAll();
}
}

if (document.all)
{
document.body.onclick=hideAll;
document.body.onscroll=hideAll;
document.body.onmousemove=updateIt;
}
if (document.layers)
{
document.onmousedown=hideAll;
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove=updateIt;
}</script>
<script language="JavaScript">function showToolbar()
{
// AddItem(id, text, hint, location, alternativeLocation);
// AddSubItem(idParent, text, hint, location);

menu = new Menu();
menu.addItem("link1", "Catagorie 1", "Tekst bij hoofdlink 1", null, null);
menu.addItem("link2", "Catagorie 2", "Tekst bij hoofdlink 2 ", null, null);
menu.addItem("link3", "Catagorie 3", "Tekst bij hoofdlink 3", null, null);
menu.addItem("link4", "Catagorie 4", "Tekst bij hoofdlink 4", null, null);
menu.addItem("link5", "Catagorie 5", "Tekst bij hoofdlink 5 ", null, null);

menu.addSubItem("link1", "Sublink 1-1", "Tekst bij Sublink 1-1", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103" );
menu.addSubItem("link1", "Sublink 1-2", "Tekst bij Sublink 1-2", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link1", "Sublink 1-3", "Tekst bij Sublink 1-3", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link1", "Sublink 1-4", "Tekst bij Sublink 1-4", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");

menu.addSubItem("link2", "Sublink 2-1", "Tekst bij Sublink 2-1", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-2", "Tekst bij Sublink 2-2", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-3", "Tekst bij Sublink 2-3", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-4", "Tekst bij Sublink 2-4", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-5", "Tekst bij Sublink 2-5", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-6", "Tekst bij Sublink 2-6", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link2", "Sublink 2-7", "Tekst bij Sublink 2-7", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");


menu.addSubItem("link3", "Sublink 3-1", "Tekst bij Sublink 3-1", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link3", "Sublink 3-2", "Tekst bij Sublink 3-2", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link3", "Sublink 3-3", "Tekst bij Sublink 3-3", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link3", "Sublink 3-4", "Tekst bij Sublink 3-4", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");


menu.addSubItem("link4", "Sublink 4-1", "Tekst bij Sublink 4-1", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-2", "Tekst bij Sublink 4-2", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-3", "Tekst bij Sublink 4-3", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-4", "Tekst bij Sublink 4-4", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-5", "Tekst bij Sublink 4-5", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-6", "Tekst bij Sublink 4-6", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link4", "Sublink 4-7", "Tekst bij Sublink 4-7", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");


menu.addSubItem("link5", "Sublink 5-1", "Tekst bij Sublink 5-1", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link5", "Sublink 5-2", "Tekst bij Sublink 5-2", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link5", "Sublink 5-3", "Tekst bij Sublink 5-3", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");
menu.addSubItem("link5", "Sublink 5-4", "Tekst bij Sublink 5-4", "http://order.webcommerce.be/affiliate//idevaffiliate.php?id=103");

menu.showMenu();
}
</script>
<script
language="JavaScript">
showToolbar();
</script>
<script language="JavaScript">
function UpdateIt(){
if (document.all){
document.all["MainTable"].style.top = document.body.scrollTop;
setTimeout("UpdateIt()", 200);}}
UpdateIt();
</script>
<base target="_blank">
 
Als je in je pagina http://www.petersohn.nl/valeriuskwartier/ dit javascript aanpast:
Code:
<script language="JavaScript">

 var laatstemenu = 'Index';

 function toonmenu(elmnt) {
  document.all(elmnt).style.visibility = 'visible';
  laatstemenu = elmnt;
  };

 function verstopmenu(elmnt) {
  document.all(elmnt).style.visibility = 'hidden';
  };

 function verstoplaatstemenu() {
  document.all(laatstemenu).style.visibility = 'hidden';
  };

</script>
en in de iframe-tag een onload toevoegd:

<iframe onload="verstoplaatstemenu()" name="I1"...

dan werkt het al aardig. :)


Vr.Gr. Egel.
 
Hallo Egel,

Bedankt voor je reactie, Het is gelukt bedankt voor je hulp !
 
Graag gedaan! :)

Je kunt als alternatief ook nog een onmouseup in de th-tags zetten:
onmouseup="verstopmenu('Index')"
maar dan verdwijnt het menu ook als je naast een link hebt geklikt of de rechter muisknop hebt gebruikt.


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan