BySlideMenu - Menu de type accordéon
Qu'est-ce que BySlideMenu ?
Fonctionnalités
- Fonctionne horizontalement ou verticalement.
- Taille automatique - Les dimensions du conteneur peuvent s'adapter automatiquement.
- Le menu s'étend au passage de la souris ou au clic, au choix.
- Le menu peut être épinglé ou non, au passage de la souris ou clic, au choix.
- Un index par défaut peut être défini.
- Peut être utilisé sur n'importe quels éléments (ul/li, div, p...)
- Support de l'overflow.
Participer
Faire un don
Si vous aimez ce script, et que vous souhaitez participez, vous pouvez envoyer quelques (centimes d') euros. Vous pouvez donner ce que vous souhaitez en cliquant ici (vous pouvez ne RIEN donner en ne cliquant PAS ici ^^) :
Utilisation
HTML
- <ul id="byslidemenu">
- <li><img src="picture1.jpg" /></li>
- <li><img src="picture2.jpg" /></li>
- <li><img src="picture3.jpg" /></li>
- </ul>
Note : Vous pouvez utiliser n'importe quels éléments. À la place de ul/li vous pouvez utiliser div/div ou div/p par exemple.
Javascript
- var mySlideMenu = new BySlideMenu(container, options);
Container
Options
| Option | Type | Default | Description |
|---|---|---|---|
defaultIndex |
int | false |
Index de l'élément à étendre au démarrage (false si aucun).Si vous souhaitez étendre le 3ème élément au démarrage, définissez defaultIndex à 3. |
expandMode |
string | "mouseover" |
"mouseover" : Le menu s'étend au passage de la souris."click" : Le menu s'étend au clic de la souris.false : Le menu ne s'étend pas avec la souris. |
pinMode |
string | false |
"mouseover" : Les éléments restent ouverts au passage de la souris."click" : Les éléments restent ouverts au clic de la souris.false : Les éléments ne restent pas ouverts. |
vertical |
bool | false | Définir à true pour passer en mode vertical. |
compressSize |
int | 40 | La largeur (ou hauteur, en mode vertical) des éléments "compressés". |
autoSize |
bool | true |
Si true, le script essayera de détecter la taille des éléments en vérifiant la première image trouvée.Si false, ou si aucune image n'est trouvée, les deux options suivantes seront utilisées. |
containerWidth |
int | La largeur du conteneur. La largeur des éléments sera calculée automatiquement à partir de la largeur du conteneur. Si la valeur est définie à "full", alors la largeur sera celle de l'élément parent. |
|
containerHeight |
int | La hauteur du conteneur. La hauteur des éléments sera calculée automatiquement à partir de la hauteur du conteneur. Si la valeur est définie à "full", alors la hauteur sera celle de l'élément parent. |
|
elementWidth |
int | 320 | La largeur des éléments étendus. Cette option sera utilisée si autoSize est défini à false, ou si aucune image n'est trouvée dans le menu, et que containerWidth n'est pas défini. |
elementHeight |
int | 240 | La hauteur des éléments étendus. Cette option sera utilisée si autoSize est défini à false, ou si aucune image n'est trouvée dans le menu, et que containerHeight n'est pas défini. |
useOverflow |
bool | false | Si cette option vaut true, l'overflow sera activé lors de l'affichage d'un élément. |
Méthode publique
mySlideMenu.expand(index, setDefault) peut être appelée pour étendre le indexème élément, et l'épingler si setDefault vaut true.Pré-requis
BySlideMenu est écrit pour Mootools v1.2
Il requiert ces modules (et leurs dépendances) :
- Element.Dimensions
- Element.Event
- Fx.Tween
- Fx.Transitions
Je le veux !
Combien dois-je payer pour l'avoir ?
Télécharger
- Télécharger BySlideMenu (7.83 Ko - Dernière modification : Mon Apr 20 17:27:41 2009)
License
BySlideMenu par ByScripts est mis à disposition selon les termes de la licence MIT Open Source.
Historique
1.1 beta
+ Possibilité de définir la largeur et/ou hauteur du conteneur au lieu de la largeur et/ou hauteur des éléments.
+ Possibilité d'activer l'overflow sur les éléments, une fois affichés.
* Amélioration du calcul de la largeur et de la hauteur des élements. Prise en compte du padding et de la bordure.
0.9 beta
# Première version
Exemples
Exemple 1 : Options par défaut
HTML
- <ul id="byslidemenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var slideMenu = new BySlideMenu();
Résultat
Exemple 2 : Comme précédemment, mais en modifiant la largeur compressée et la durée
HTML
- <ul id="compressmenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var compressmenu = new BySlideMenu('compressmenu', {
- compressSize: 10,
- duration: 250
- });
Résultat
Exemple 3 : Menu vertical
HTML
- <ul id="verticalmenu">
- <li><img src="creditcardsV.jpg" /></li>
- <li><img src="gamesV.jpg" /></li>
- <li><img src="computerV.jpg" /></li>
- <li><img src="eiffeltowerV.jpg" /></li>
- <li><img src="electronicV.jpg" /></li>
- </ul>
Javascript
- var verticalmenu = new BySlideMenu('verticalmenu', {vertical: true});
Résultat
Exemple 4 : Menu utilisant un index par défaut, et la transition "Bounce"
HTML
- <div id="indexmenu">
- <p><img src="creditcards.jpg" /></p>
- <p><img src="games.jpg" /></p>
- <p><img src="computer.jpg" /></p>
- <p><img src="eiffeltower.jpg" /></p>
- <p><img src="electronic.jpg" /></p>
- </div>
Javascript
- var indexmenu = new BySlideMenu('indexmenu', {
- defaultIndex: 4,
- transition: Fx.Transitions.Bounce.easeOut
- });
Résultat
Exemple 5 : Menu étendu par un clic de souris
HTML
- <ul id="expandclickmenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var expandclickmenu = new BySlideMenu('expandclickmenu', {expandMode: 'click'});
Résultat
Exemple 6 : Menu épinglé par un clic de souris
HTML
- <ul id="pinclickmenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var pinclickmenu = new BySlideMenu('pinclickmenu', {pinMode: 'click'});
Résultat
Exemple 7 : Menu épinglé au passage de la souris
HTML
- <ul id="pinovermenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var pinovermenu = new BySlideMenu('pinovermenu', {pinMode: 'mouseover'});
Résultat
Exemple 8 : Menu étendu et épinglé par un clic de la souris
HTML
- <ul id="clickmenu">
- <li><img src="creditcards.jpg" /></li>
- <li><img src="games.jpg" /></li>
- <li><img src="computer.jpg" /></li>
- <li><img src="eiffeltower.jpg" /></li>
- <li><img src="electronic.jpg" /></li>
- </ul>
Javascript
- var clickmenu = new BySlideMenu('clickmenu', {
- expandMode: 'click',
- pinMode: 'click'
- });
Résultat
Exemple 9 : Menu texte
HTML
- <ul id="textmenu">
- <li class="bg1 icon1">Element 1</li>
- <li class="bg2 icon2">Element 2</li>
- <li class="bg1 icon3">Element 3</li>
- <li class="bg2 icon4">Element 4</li>
- <li class="bg1 icon5">Element 5</li>
- <li class="bg2 icon6">Element 6</li>
- <li class="bg1 icon7">Element 7</li>
- <li class="bg2 icon8">Element 8</li>
- <li class="bg1 icon9">Element 9</li>
- </ul>
Javascript
- var textmenu = new BySlideMenu('textmenu', {
- defaultIndex: 1,
- elementHeight: 30,
- elementWidth: 175
- });
Résultat
Exemple 10 : Menu texte vertical avec overflow
HTML
- <div id="verticaltextmenu">
- <div class="bg1 first">
- <h5>Title 1</h5>
- <p>This is the first content. Don't you think it's great ?</p>
- </div>
- <div class="bg2">
- <h5>Title 2</h5>
- <p>And now, the second content.</p>
- </div>
- <div class="bg1">
- <h5>Title 3</h5>
- <p>Another one. It may be useful for many things no ?</p>
- </div>
- <div class="bg2">
- <h5>Title 4</h5>
- <p>And the last one... So, what's your opinion on this script ?</p>
- </div>
- </div>
Javascript
- verticaltextmenu = new BySlideMenu('verticaltextmenu', {
- defaultIndex: 1,
- vertical: true,
- elementHeight: 110,
- elementWidth: 200,
- compressSize: 30,
- useOverflow: true
- });
Résultat
Exemple 11 : Agir sur un menu avec un lien
HTML
- <ul style="font-size: 16pt;">
- <li><a href="javascript:verticaltextmenu.expand(3)">
- Display the third element, but don't pin it.</a></li>
- <li><a href="#" onclick="verticaltextmenu.expand(4, true); return false;">
- Display and pin the fourth element.</a></li>
- </ul>
Résultat
Exemple 12 : Paramétrage de la largeur et de la hauteur du conteneur
HTML
- <ul id="fullwidthmenu">
- <li class="bg1 icon1">Element 1</li>
- <li class="bg2 icon2">Element 2</li>
- <li class="bg1 icon3">Element 3</li>
- <li class="bg2 icon4">Element 4</li>
- <li class="bg1 icon5">Element 5</li>
- <li class="bg2 icon6">Element 6</li>
- <li class="bg1 icon7">Element 7</li>
- <li class="bg2 icon8">Element 8</li>
- <li class="bg1 icon9">Element 9</li>
- </ul>
Javascript
- var fullwidthmenu = new BySlideMenu('fullwidthmenu', {
- defaultIndex: 1,
- containerHeight: 30,
- containerWidth: "full"
- });









