pflegeonline
26-05-2004, 20:51
Hallo an alle!
Ich will fr meine Seite ein Men erstellen, bei welchem durch MouseOver ber dem Hauptmenpunkt das zugehrige Submen in einem bis dato unsichtbaren Layer angezeigt wird. Das Problem ist jetzt, dass wenn ich die Menpunkte aus der MySQL-DB hole, werden, wenn ich nacheinander mit der Maus ber die Hauptmenpunkte fahre, alle Submenlayer angezeigt. Zum leichteren verstndnis: http://www.pflegenetzwerk.org
Der Code fr die Mens und die Layer:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
<?php // Custom MainMenu extension...
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '0' ORDER BY ordering");
$mymenu_rows = $database->loadObjectList();
$mymenu_content = "";
foreach($mymenu_rows as $mymenu_row) {
// print_r($mymenu_rows);
$mymenulink = $mymenu_row->link;
if ($mymenu_row->type != "url") {
$mymenulink .= "&Itemid=$mymenu_row->id";
}
if ($mymenu_row->type != "separator") {
$mymenu_content .= "<a href="".sefRelToAbs($mymenulink)."" class="mainmenu" onMouseOver="MM_showHideLayers('Layer$mymenu_row->id','','show')">$mymenu_row->name</a> ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '3' ORDER BY ordering");
$submenu1_rows = $database->loadObjectList();
$submenu1_content = "";
foreach($submenu1_rows as $submenu1_row) {
// print_r($submenu1_rows);
$submenu1link = $submenu1_row->link;
if ($submenu1_row->type != "url") {
$submenu1link .= "&Itemid=$submenu1_row->id";
}
if ($submenu1_row->type != "separator") {
$submenu1_content .= "<a href="".sefRelToAbs($submenu1link)."" class="mainmenu">$submenu1_row->name</a> ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '54' ORDER BY ordering");
$submenu2_rows = $database->loadObjectList();
$submenu2_content = "";
foreach($submenu2_rows as $submenu2_row) {
// print_r($submenu2_rows);
$submenu2link = $submenu2_row->link;
if ($submenu2_row->type != "url") {
$submenu2link .= "&Itemid=$submenu2_row->id";
}
if ($submenu2_row->type != "separator") {
$submenu2_content .= "<a href="".sefRelToAbs($submenu2link)."" class="mainmenu">$submenu2_row->name</a> | ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '26' ORDER BY ordering");
$submenu3_rows = $database->loadObjectList();
$submenu3_content = "";
foreach($submenu3_rows as $submenu3_row) {
// print_r($submenu3_rows);
$submenu3link = $submenu3_row->link;
if ($submenu3_row->type != "url") {
$submenu3link .= "&Itemid=$submenu3_row->id";
}
if ($submenu3_row->type != "separator") {
$submenu3_content .= "<a href="".sefRelToAbs($submenu3link)."" class="mainmenu">$submenu3_row->name</a> | ";
}
}
?>
Und hier der Layer-Code:
<div id="mainlayer" style="position: absolute; top:40px; width:700px;">
<div id="Layer3" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu1_content; ?></font></div>
<Adiv id="Layer54" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu2_content; ?></font></div>
<div id="Layer26" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu3_content; ?></font></div>
</div>
Vielleicht hat irgendjemand eine Idee wie man das lsen kann, dass die anderen Layer ausgeblendet werden, wenn einer Aktiv ist!
greetz
Stefan
Ich will fr meine Seite ein Men erstellen, bei welchem durch MouseOver ber dem Hauptmenpunkt das zugehrige Submen in einem bis dato unsichtbaren Layer angezeigt wird. Das Problem ist jetzt, dass wenn ich die Menpunkte aus der MySQL-DB hole, werden, wenn ich nacheinander mit der Maus ber die Hauptmenpunkte fahre, alle Submenlayer angezeigt. Zum leichteren verstndnis: http://www.pflegenetzwerk.org
Der Code fr die Mens und die Layer:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
<?php // Custom MainMenu extension...
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '0' ORDER BY ordering");
$mymenu_rows = $database->loadObjectList();
$mymenu_content = "";
foreach($mymenu_rows as $mymenu_row) {
// print_r($mymenu_rows);
$mymenulink = $mymenu_row->link;
if ($mymenu_row->type != "url") {
$mymenulink .= "&Itemid=$mymenu_row->id";
}
if ($mymenu_row->type != "separator") {
$mymenu_content .= "<a href="".sefRelToAbs($mymenulink)."" class="mainmenu" onMouseOver="MM_showHideLayers('Layer$mymenu_row->id','','show')">$mymenu_row->name</a> ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '3' ORDER BY ordering");
$submenu1_rows = $database->loadObjectList();
$submenu1_content = "";
foreach($submenu1_rows as $submenu1_row) {
// print_r($submenu1_rows);
$submenu1link = $submenu1_row->link;
if ($submenu1_row->type != "url") {
$submenu1link .= "&Itemid=$submenu1_row->id";
}
if ($submenu1_row->type != "separator") {
$submenu1_content .= "<a href="".sefRelToAbs($submenu1link)."" class="mainmenu">$submenu1_row->name</a> ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '54' ORDER BY ordering");
$submenu2_rows = $database->loadObjectList();
$submenu2_content = "";
foreach($submenu2_rows as $submenu2_row) {
// print_r($submenu2_rows);
$submenu2link = $submenu2_row->link;
if ($submenu2_row->type != "url") {
$submenu2link .= "&Itemid=$submenu2_row->id";
}
if ($submenu2_row->type != "separator") {
$submenu2_content .= "<a href="".sefRelToAbs($submenu2link)."" class="mainmenu">$submenu2_row->name</a> | ";
}
}
$database->setQuery("SELECT * FROM #__menu WHERE menutype = 'mainmenu' AND published ='1' AND parent = '26' ORDER BY ordering");
$submenu3_rows = $database->loadObjectList();
$submenu3_content = "";
foreach($submenu3_rows as $submenu3_row) {
// print_r($submenu3_rows);
$submenu3link = $submenu3_row->link;
if ($submenu3_row->type != "url") {
$submenu3link .= "&Itemid=$submenu3_row->id";
}
if ($submenu3_row->type != "separator") {
$submenu3_content .= "<a href="".sefRelToAbs($submenu3link)."" class="mainmenu">$submenu3_row->name</a> | ";
}
}
?>
Und hier der Layer-Code:
<div id="mainlayer" style="position: absolute; top:40px; width:700px;">
<div id="Layer3" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu1_content; ?></font></div>
<Adiv id="Layer54" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu2_content; ?></font></div>
<div id="Layer26" style="position: absolute; z-index:1; visibility: hidden;">
<font color="#808080"><?php print $submenu3_content; ?></font></div>
</div>
Vielleicht hat irgendjemand eine Idee wie man das lsen kann, dass die anderen Layer ausgeblendet werden, wenn einer Aktiv ist!
greetz
Stefan