Nadszedł czas na napisanie jakiegoś tutoriala. W tym poście opiszę skrypt, dzięki któremu możemy dodać na naszą stronę efektowne, zwijane, pionowe menu lub panele (screen kliknij). Skrypt korzysta z biblioteki jQuery. Instalacja nie sprawia problemu. Ponadto Accordion w łatwy sposób możemy dostosować do naszych potrzeb. No to do dzieła!
<script type="text/javascript">
ddaccordion.init({
headerclass: "expandable", //nazwa klasy CSS nagłówka
contentclass: "categoryitems", //nazwa klasy CSS grupy
revealtype: "click", //kiedy ma się rozwijać: "click", "clickgo", "onmouseover"
mouseoverdelay: 200, //jeśli revealtype="mouseover", wybierz czas w milisekundach do rozwinięcia
collapseprev: true, //czy może być otworzona tylko jedna kategoria w tym samym momencie? true/false
defaultexpanded: [0], //kategorie od razu otworzone [index1, index2, etc]. [] żadna
onemustopen: false, //czy zawsze przynajmniej jedno musi być otworzone?
animatedefault: false, //animowanie przy otwieraniu
persiststate: true, //zapamiętaj ułożenie w czasie sesji przeglądarki
toggleclass: ["", "openheader"], //klasy CSS: nr1 - zamknięty nagłówek, nr2 - otwarty
togglehtml: ["prefix", "", ""], //dodatkowy HTML kiedy rozwinięte/zwinięte ["position", "html1", "html2"]
animatespeed: "fast", //szybkość animacji w milisekundach (ie: 200), albo hasłami "fast", "normal", lub "slow"
oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
//nie ruszaj
},
onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
//nie ruszaj
}
})
</script>.arrowlistmenu{
width: 180px; /*szerokość menu*/
}
.arrowlistmenu .menuheader{ /*generalny styl nagłówka listy*/
font: bold 14px Arial;
color: white;
background: black url(titlebar.png) repeat-x center left;
margin-bottom: 10px; /*odległość nagłówka od treści*/
text-transform: uppercase;
padding: 4px 0 4px 10px;
cursor: hand;
cursor: pointer;
}
.arrowlistmenu .openheader{
background-image: url(titlebar-active.png);
}
.arrowlistmenu ul{
list-style-type: none;
margin: 0;
padding: 0;
margin-bottom: 8px;
}
.arrowlistmenu ul li{
padding-bottom: 2px; /*dolna przerwa między punktami menu*/
}
.arrowlistmenu ul li a{
color: #A70303;
background: url(arrowbullet.png) no-repeat center left; /*wygląd "kropki"*/
display: block;
padding: 2px 0;
padding-left: 19px; /*link text is indented 19px*/
text-decoration: none;
font-weight: bold;
border-bottom: 1px solid #dadada;
font-size: 90%;
}
.arrowlistmenu ul li a:visited{
color: #A70303;
}
.arrowlistmenu ul li a:hover{
color: #A70303;
background-color: #F3F3F3;
}Do powyższego efektu potrzebne są trzy obrazki. Możesz je pobrać klikając na każdy z nich prawym przyciskiem myszy i wybierając Zapisz jako…
<div class="arrowlistmenu">
<h3 class="menuheader expandable">CSS Library</h3>
<ul class="categoryitems">
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
</ul>
<h3 class="menuheader expandable">CSS Library</h3>
<ul class="categoryitems">
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
</ul>
<h3 class="menuheader expandable">CSS Library</h3>
<ul class="categoryitems">
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
<li><a href="http://www.dynamicdrive.com/style/csslibrary/category/C1/">Horizontal CSS Menus</a></li>
</ul>
</div>Zobacz demo.
To już koniec. Nieprawdaż, że proste? Enjoy!
godzina: 16:02
Witam,
Jak dodać podstrony do tego menu? Jakich znaczników trzeba użyć ?
godzina: 16:11
Wystarczy podstawowa znajomość HTML-a. We fragmencie widać, że podpunkty są w <li></li>.
godzina: 18:30
już wiem
godzina: 17:07
Wiesz może w jaki sposób zmienić odległość textu w podmenu od kropki/strzałki (arrowbullet)? Tak żeby text był odsunięty o jakieś 5px
godzina: 20:51
W „.arrowlistmenu ul li a” zamień:
padding: 2px 0;
na:
padding: 2px 0 0 5px;
godzina: 12:29
Witam, czy można w jakiś sposób przerobić ten kod żeby menu działało nie tak jak teraz na 1 poziom w dół tylko na trzy poziomy w dół. Tak że jak nie zamknę trzeciego najbardziej wewnętrznego i nacisnę kolejny w pierwszym poziomie to zwinie wszystkie. Nie wiem czy wyrażam się jasno.
godzina: 14:58
Możliwość pewnie taka jest, jeśli znasz się na javasciptcie. Jeżeli się nie znasz to znajdź lepiej inny skrypt.
godzina: 19:51
[...] Autor: Kamil Lis [...]
godzina: 15:03
Cudowny skrypt! Idealnie to, czego szukałem, czyli idealnie personalizowany. Wielkie dzięki dla autora skryptu oraz tutoriala!!