1 User liest/lesen diesen Beitrag: (0 Mitglieder, und 1 Gast).

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Akkordeon-Menü
25.08.2008, 21:39 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2008 21:45 von Lonesome Walker.)
Beitrag: #1
Akkordeon-Menü
Nachdem es im "offiziellen" Forum nun noch immer keine (befriedigende) Lösung zu diesem Thema gibt, werde ich mal eine kleine Gedankenstütze zu diesem Menü liefern:

Das kommt in den Header der index.php
PHP-Code:
<script type="text/javascript" src="<?php echo TEMPLATE_DIR; ?>/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo TEMPLATE_DIR?>/js/akkordeon.js">
/***********************************************
* Accordion Content script- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/
</script>
<script type="text/javascript">
ddaccordion.init({
    headerclass: "expandable", //Shared CSS class name of headers group that are expandable
    contentclass: "categoryitems", //Shared CSS class name of contents group
    collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
    defaultexpanded: [0], //index of content(s) open by default [index1, index2, etc]. [] denotes no content
    animatedefault: false, //Should contents open by default be animated into view?
    persiststate: true, //persist state of opened contents within browser session?
    toggleclass: ["", "openheader"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
    togglehtml: ["prefix", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
    animatespeed: "normal", //speed of animation: "fast", "normal", or "slow"
    oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
        //do nothing
    },
    onopenclose:function(header, index, state, isclicked){ //custom code to run whenever a header is opened or closed
        //do nothing
    }
})
</script> 

Das da kommt in die CSS-Datei:
PHP-Code:
.arrowlistmenu {
    
width180px/*width of accordion menu*/
    
floatright;
    
text-alignleft;
}

.
arrowlistmenu .menuheader /*CSS class for menu headers in general (expanding or not!)*/
    
fontbold 14px Arial;
    
colorwhite;
    
backgroundblack url("./images/non-active.jpg"repeat-x center left;
    
margin-bottom10px/*bottom spacing between header and rest of content*/
    
text-transformuppercase;
    
padding4px 0 4px 10px/*header text is indented 10px*/
    
cursorhand;
    
cursorpointer;
}

.
arrowlistmenu .openheader /*CSS class to apply to expandable header when it's expanded*/
    
background-imageurl("./images/active.jpg");
}

.
arrowlistmenu ul /*CSS for UL of each sub menu*/
    
list-style-typenone;
    
margin0;
    
padding0;
    
margin-bottom8px/*bottom spacing between each UL and rest of content*/
}

.
arrowlistmenu ul li {
    
padding-bottom2px/*bottom spacing between menu items*/
}

.
arrowlistmenu ul li a {
    
color#585858;
    
backgroundurl("./images/arrowbullet.png"no-repeat center left/*custom bullet list image*/
    
displayblock;
    
padding2px 0;
    
padding-left19px/*link text is indented 19px*/
    
text-decorationnone;
    
font-weightbold;
    
font-size90%;
}

.
arrowlistmenu ul li a:visited {
    
color#585858;
}

.
arrowlistmenu ul li a:hover /*hover state CSS*/
    
color#ffffff;
    
background-color#000000;


und das hier (wonach schon so viele gesucht haben...) kommt in die index.php als Menüaufruf:
PHP-Code:
<div class="arrowlistmenu">
<
h3 class="menuheader expandable">Men&uuml;punkt 1</h3>
<
ul class="categoryitems">
<?
php show_menu(1,0,1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>
<h3 class="menuheader expandable">Men&uuml;punkt 2</h3>
<ul class="categoryitems">
<?php show_menu(2,0,1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>
<h3 class="menuheader expandable">Men&uuml;punkt 3</h3>
<ul class="categoryitems">
<?php show_menu(3,0,1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>
<h3 class="menuheader expandable">Kontakt</h3>
<ul class="categoryitems">
<?php show_menu(4,0,1,true,'<li>[a][menu_title][/a]','</li>','','','',''); ?>
</ul>
</div> 

klaaaar, jetzt wo man es sieht, ist alles einfach...
Einfach nur mehrere Menü-Aufrufe

Ach ja, die angehängten *.js-Dateien müssen ins Template-Unterverzeichnis /js/ kopiert werden, die Grafiken ins /images/ Verzeichnis.
Und in der info.php sollten auch die Menü's definiert sein...

Klar gibts das ganze auch noch dynamisch/automatisiert, aber wie gesagt, soll einfach nur eine Initial-Zündung für andere sein...
(wink in Richtung Stefek und chio...)


Angehängte Datei(en)
.zip  akkordeon.zip (Größe: 19,23 KB / Downloads: 51)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Kontakt | Websitebaker Hilfe | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation