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" /> |
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=" " 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 najlepiej gif o wymiarze 3 x 45 px