Rozbudowane menu boczne

Można powiedzieć że standardowe menu - lecz bardzo rozbudowane niby zwykłe menu boczne ale z linków może się wysuwać następne menu z listą wyboru przejścia na kolejne podstronki w końcowym efekcie bardzo profesjonalny nawigator po naszej witrynie.

Sekcja HEAD

<link rel="stylesheet" type="text/css" href="/cssverticalmenu.css" />
<script type="text/javascript" src="/cssverticalmenu.js"></script>

zawartość pliku cssverticalmenu.css

.glossymenu, .glossymenu li ul{
list-style-type: none;
margin: 0;
padding: 0;
width: 185px; /*WIDTH OF MAIN MENU ITEMS*/
border: 1px solid black;
}

.glossymenu li{
position: relative;
}

.glossymenu li a{
background: white url(glossyback.gif) repeat-x bottom left;
font: bold 12px Verdana, Helvetica, sans-serif;
color: white;
display: block;
width: auto;
padding: 5px 0;
padding-left: 10px;
text-decoration: none;
}

.glossymenu li ul{ /*SUB MENU STYLE*/
position: absolute;
width: 190px; /*WIDTH OF SUB MENU ITEMS*/
left: 0;
top: 0;
display: none;
}

.glossymenu li ul li{
float: left;
}

.glossymenu li ul a{
width: 180px; /*WIDTH OF SUB MENU ITEMS - 10px padding-left for A elements */
}

.glossymenu .arrowdiv{
position: absolute;
right: 2px;
background: transparent url(arrow.gif) no-repeat center right;
}

.glossymenu li a:visited, .glossymenu li a:active{
color: white;
}

.glossymenu li a:hover{
background-image: url(glossyback2.gif);
}

zawartość pliku cssverticalmenu.js

var menuids=new Array("verticalmenu") //Enter id(s) of UL menus, separated by commas
var submenuoffset=-2 //Offset of submenus from main menu. Default is -2 pixels.

function createcssmenu(){
for (var i=0; i<menuids.length; i++){
var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
for (var t=0; t<ultags.length; t++){
var spanref=document.createElement("span")
spanref.className="arrowdiv"
spanref.innerHTML="&nbsp;&nbsp;"
ultags[t].parentNode.getElementsByTagName("a")[0].appendChild(spanref)
ultags[t].parentNode.onmouseover=function(){
this.getElementsByTagName("ul")[0].style.left=this.parentNode.offsetWidth+submenuoffset+"px"
this.getElementsByTagName("ul")[0].style.display="block"
}
ultags[t].parentNode.onmouseout=function(){
this.getElementsByTagName("ul")[0].style.display="none"
}
}
}
}


if (window.addEventListener)
window.addEventListener("load", createcssmenu, false)
else if (window.attachEvent)
window.attachEvent("onload", createcssmenu)

Przykład rozbudowy i wywołania w pliku html - w sekcji BODY

<ul id="verticalmenu" class="glossymenu">
<li><a href="http://www.infoprog.pl/forum">Forum</a></li>
<li><a href="http://www.infoprog.pl" >infoprog.pl</a></li>
<li><a href="http://www.infoprog.pl">infoprog.pl</a></li>
<li><a href="#">References</a>
<ul>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pll">nazwa linku</a></li>
</ul>
</li>
<li><a href="http://www.infoprog.pl" >nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="#" >Resources</a>
<ul>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
<li><a href="http://www.infoprog.pl">nazwa linku</a></li>
</ul>
</li>
</ul>

Aby wszystko miało jeszcze fajny ładny wygląd należy dobrać ładny kolor tego menu - ale to już kwestia stworzenia małego gradientu Uśmiechnajlepiej gif o wymiarze 3 x 45 px