Selam, genelde bu tarz menülerin mantığı DIV veya UL ve LI gibi html taglerinin CSS ile düzenlenmesiyle oluşturulur burada JavaScript sadece gösterip gizleme aşamasında devreye girer. Alt menüler veya ana menüler html tagleri içerisinde olduğu için herhangi bir veritabanından gelen veriyi buraya yazdırarak oluşturabilirsin.
Örn.
Menü için css,
<style type="text/css">
ul.anaMenu {
list-style:none;
border:1px solid #000000;
background-color:#EAEAEA;
width:100px;
padding:5px;
font-weight:bold;
cursor:pointer;
}
ul.altMenu {
position:absolute;
left:100px;
list-style:none;
border:1px solid #000000;
background-color:#C0C0C0;
width:100px;
padding:5px;
}
</style>
Alt menüleri gösterip gizlemek için kullandığım javascript,
<script type="text/javascript">
function gosterGizle(neyi) {
var nesne = document.getElementById(neyi);
var durum = (nesne.style.visibility=="hidden")?"visible":"hidden";
nesne.style.visibility=durum;
}
</script>
Menüyü oluşturan html+php kodu ben burda veriyi array içinden aldım veritabanından gelende olabilir tabiki.
<body>
<?php
$anaMenu_arr = array("Ana Sayfa",array("Haberler","Son Dakika","Spor","Politika","Teknoloji"),"Linkler","İletişim");
?>
<ul class="anaMenu">
<?php
foreach($anaMenu_arr as $menuBasligi)
{
if(!is_array($menuBasligi)) {
echo "<li>".$menuBasligi."</li>";
} else {
echo "<li onMouseOver='gosterGizle(\"$menuBasligi[0]_altMenu\");' onMouseOut='gosterGizle(\"$menuBasligi[0]_altMenu\");'>
<ul class='altMenu' id='$menuBasligi[0]_altMenu' style='visibility:hidden; cursor:pointer;'>";
for($i=1;$i<count($menuBasligi);$i++) {
echo "<li>$menuBasligi[$i]</li>";
}
echo "</ul>$menuBasligi[0]</li>";
}
}
?>
</ul>
</body>
Tamamı,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UL LI Menü</title>
<style type="text/css">
body {
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
ul.anaMenu {
list-style:none;
border:1px solid #000000;
background-color:#EAEAEA;
width:100px;
padding:5px;
font-weight:bold;
cursor:pointer;
}
ul.altMenu {
position:absolute;
left:100px;
list-style:none;
border:1px solid #000000;
background-color:#C0C0C0;
width:100px;
padding:5px;
}
</style>
<script type="text/javascript">
function gosterGizle(neyi) {
var nesne = document.getElementById(neyi);
var durum = (nesne.style.visibility=="hidden")?"visible":"hidden";
nesne.style.visibility=durum;
}
</script>
</head>
<body>
<?php
$anaMenu_arr = array("Ana Sayfa",array("Haberler","Son Dakika","Spor","Politika","Teknoloji"),"Linkler","İletişim");
?>
<ul class="anaMenu">
<?php
foreach($anaMenu_arr as $menuBasligi)
{
if(!is_array($menuBasligi)) {
echo "<li>".$menuBasligi."</li>";
} else {
echo "<li onMouseOver='gosterGizle(\"$menuBasligi[0]_altMenu\");' onMouseOut='gosterGizle(\"$menuBasligi[0]_altMenu\");'>
<ul class='altMenu' id='$menuBasligi[0]_altMenu' style='visibility:hidden; cursor:pointer;'>";
for($i=1;$i<count($menuBasligi);$i++) {
echo "<li>$menuBasligi[$i]</li>";
}
echo "</ul>$menuBasligi[0]</li>";
}
}
?>
</ul>
</body>
</html>