Accueil > > > MENU DÉROULANT
MENU DÉROULANT
Information sur la source
Description
C'est un menu style onglets. Chaque onglet permet d'afficher les sous menus. L'intérêt se trouve dans l'animation. Chaque "onglet" se déplace verticalement laissant apparaitre avec lui le contenu du sous menu.
Source
- Fichier menu.html :
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- <link rel='stylesheet' href='./styles/stylemenu.css' type='text/css' />
- <link rel='stylesheet' href='./styles/gestmenu.css' type='text/css' />
- <SCRIPT type="text/javascript" src="./script/menu.js">
- </SCRIPT>
-
- </head>
- <!--
- Fonction d'initalisation du menu. (c.f. ./script/menu.js)
- Rappel des paramètres :
- idStyle : Index de la feuille de style contenu la définition des positions de menus (./styles/gestmenu.css)
- hautMenu : Hauteur totale en px d'une page de menu
- hautTitre : Hauteur en px du titre du menu
- largMenu : Largeur du menu
- topPos : Position par rapport au haut de la page en px de la première page de menu
- leftPos : Position par rapport au bord gauche de la page en px des pages de menu
- inter : intervale en px d'ouverture et de fermeture d'un menu
- idMenu : numéro de menu a afficher à l'initialisation.
- -->
- <body onload="javascript:initMenu(1, 400, 20, 200, 20, 20, 10, 0);">
- <form action="" method="post" name="menu">
- <div class="cadremenu1">
- <!-- Numéroter chaque page de menu (div) en commencant par 0 -->
- <a href="#" onclick="javascript:showMenu(0);" class="titre">Menu 1</a>
- <br/>
- <br/>
- <ul class="soustitreli">
- <li><a href="#" class="soustitre">Sous Menu 1.1</a></li>
- <li><a href="#" class="soustitre">Sous Menu 1.2</a></li>
- <li><a href="#" class="soustitre">Sous Menu 1.3</a></li>
- </ul>
- </div>
- </form>
- <div class="cadremenu2">
- <a href="#" onclick="javascript:showMenu(1);" class="titre">Menu 2</a>
- <br/>
- <br/>
- <ul class="soustitreli">
- <li><a href="#" class="soustitre">Sous Menu 2.1</a></li>
- <li><a href="#" class="soustitre">Sous Menu 2.2</a></li>
- </ul>
- </div>
-
- <div class="cadremenu3">
- <a href="#" onclick="javascript:showMenu(2);" class="titre">Menu 3</a>
- <br/>
- <br/>
- <ul class="soustitreli">
- <li><a href="#" class="soustitre">Sous Menu 3.1</a></li>
- <li><a href="#" class="soustitre">Sous Menu 3.2</a></li>
- <li><a href="#" class="soustitre">Sous Menu 3.3</a></li>
- <li><a href="#" class="soustitre">Sous Menu 3.4</a></li>
- </ul>
- </div>
-
- <div class="cadremenu4">
- <a href="#" onclick="javascript:showMenu(3);" class="titre">Menu 4</a>
- <br/>
- <br/>
- <ul class="soustitreli">
- <li><a href="#" class="soustitre">Sous Menu 3.1</a></li>
- <li><a href="#" class="soustitre">Sous Menu 3.2</a></li>
- <li><a href="#" class="soustitre">Sous Menu 3.3</a></li>
- </ul>
- </div>
-
- <div class="cadremenu5">
- <a href="#" onclick="javascript:showMenu(4);" class="titre">Menu 5</a>
- <br/>
- <br/>
- <ul class="soustitreli">
- <li><a href="#" class="soustitre">Sous Menu 5.1</a></li>
- <li><a href="#" class="soustitre">Sous Menu 5.2</a></li>
- <li><a href="#" class="soustitre">Sous Menu 5.3</a></li>
- </ul>
- </div>
-
- </body>
- </html>
-
- //-------------------------------------------------------------------------
- Fichier menu.js (gère l'animation du menu) :
-
- /**
- Fonctions javascript d'animation du menu.
- Le principe :
- On a autant de div que de pages de menu.
- Les div sont superposés les uns sur les autres avec un décalage en hauteur pour permetre l'affichage
- du titre de chaque page (div) de menu.
-
- Lorsqu'on veut afficher une page, toutes les pages de menu dont le titre est en dessous sont réduites
- et toutes les pages de menu dont le titre est au dessus sont agrandies.
- De cette manière seule la page selectionnée est visible car elle cache les pages de menu dont le
- titre est au dessus.
-
- Le programme se base sur la feuille de style qui décrit les positions des menus (ici gestmenu.css)
- Il doit donc y avoir exactement autant de classes css dans cette feuille de style que de pages (div) de menu.
- - La premiere classe doit etre affectée la premirer page de menu.
- - La seconde classe à la deuxieme page de menu et ainsi de suite...
-
- Le données communes au menu peuvent etre regroupées dans une seule classe mais doit être placée
- dans une autre feuille de style. (ici stylemenu.css)
-
- Les données qui doivent apparaitre obligatoirement dans la feuille de style d'animation des menus sont :
- - height, pour l'initialisation par la fonction initMenu
- - width, pour l'initialisation par la fonction initMenu
- - top, pour l'initialisation par la fonction initMenu
- - left, pour l'initialisation par la fonction initMenu
- - z-index, qui permet de déterminer l'ordre d'affichage sur l'axe z des pages de menu.
-
- Pour ajouter une page de menu.
- - Dans la pages HTML :
- - Ajouter un nouveau div avec une nouvelle classe css
- - Ajouter le nouvel index dans la fonction showMenu (index précédent + 1)
- Remarque : la numérotation des index doit commencer obligatoirement par 0
- - Dans la feuille de style de gestion de l'animation des menus
- - recopier une classe css d'une page a la suite des autres classes
- - renomer la classe ave le nom donné dans la nouvelle page de menu
- - mettre à jour le z-index pour qu'elle s'affiche au dessous de toutes les autres.
- */
-
- // Gère l'animation du menu :
-
- idStyleSheet = 0; // Identifiant de la feuille css qui gere l'animation du menu.
- hauteurMenu = 0; // Hauteur totele initiale d'une page de menu
- hauteurTitre = 0; // Hauteur du titre d'une page de menu. Il s'agit de la partie toujours visible du menu
- largeurMenu = 0; // Largeur d'une page de menu
- topPosition = 0; // Position par rapport au haut de la page HTML
- leftPosition = 0; // Position par rapport au bord gauche de la page HTML
- intervale = 0; // Intervale de déplacement d'un menu.
-
-
- /* la fonction initalise le menu. elle doit appelée dans le onload de la page HTML
- idStyle : Index de la feuille de style contenu la définition des positions de menus (./styles/gestmenu.css)
- hautMenu : Hauteur totale en px d'une page de menu
- hautTitre : Hauteur en px du titre du menu
- largMenu : Largeur du menu
- topPos : Position par rapport au haut de la page en px de la première page de menu
- leftPos : Position par rapport au bord gauche de la page en px des pages de menu
- inter : Intervale en px d'ouverture et de fermeture d'un menu
- idMenu : Numéro de menu a afficher à l'initialisation.
- */
- function initMenu(idStyle, hautMenu, hautTitre, largMenu, topPos, leftPos, inter, idMenu) {
- hauteurMenu = hautMenu + "px";
- hauteurTitre = hautTitre + "px";
- largeurMenu = largMenu + "px";
- topPosition = topPos + "px";
- leftPosition = leftPos + "px";
- idStyleSheet = idStyle;
- intervale = inter;
-
- var regles = (document.styleSheets[idStyleSheet].cssRules) ? document.styleSheets[idStyleSheet].cssRules : document.styleSheets[idStyleSheet].rules;
-
- //ferme les menus nécessaires l'affichage du menu designé dans idMenu
- for(i=idMenu+1; i < regles.length; i++) {
- regles[i].style.height=hautTitre + "px";
- regles[i].style.top=(topPos + parseInt(hautMenu,10) + (parseInt(hautTitre,10) * (i))) + "px";
- regles[i].style.width=largMenu + "px";
- regles[i].style.left=leftPos + "px";
- }
-
- //Ouvrir les menus à partir du menu désigné dans idMenu
- for(i=0; i < idMenu+1; i++) {
- regles[i].style.height=hautMenu + "px";
- regles[i].style.top=(topPos + (parseInt(hautTitre,10) * (i+1))) + "px";
- regles[i].style.width=largMenu + "px";
- regles[i].style.left=leftPos + "px";
- }
-
- }
-
- // Détermine la prochaine position d'une page du menu lors de sa fermeture.
- function getTimeTopClose(topPx) {
- var top=topPx.substring(0, topPx.length-2);
- top = parseInt(top,10);
- return top + intervale;
- }
-
- // Détermine la prochaine hauteur d'une page du menu lors de sa fermeture.
- function getTimeHeightClose(heightPx) {
- var height=heightPx.substring(0, heightPx.length-2);
- var numHauteurMenuFerme = parseInt(hauteurTitre.substring(0, hauteurTitre.length-2));
- height = parseInt(height,10);
- return (height-intervale <= numHauteurMenuFerme ) ? numHauteurMenuFerme : height-intervale;
- }
-
-
- // Détermine la prochaine position d'une page du menu lors de son ouverture.
- function getTimeTopOpen(topPx) {
- var top=topPx.substring(0, topPx.length-2);
- top = parseInt(top,10);
- return top - intervale;
- }
-
- // Détermine la prochaine hauteur d'une page du menu lors de son ouverture.
- function getTimeHeightOpen(heightPx) {
- var height=heightPx.substring(0, heightPx.length-2);
- var numHauteurMenuOuvert = parseInt(hauteurMenu.substring(0, hauteurMenu.length-2));
- height = parseInt(height,10);
- return (height+intervale >= numHauteurMenuOuvert) ? numHauteurMenuOuvert : height+intervale;
- }
-
-
- // Anime le menu pour afficher la page données en id.
- function showMenu(id) {
- // recupération des regles css des menus.
- var regles = (document.styleSheets[idStyleSheet].cssRules) ? document.styleSheets[idStyleSheet].cssRules : document.styleSheets[idStyleSheet].rules;
-
- // fermeture de tous les menus en dessous du menu choisi
- for(i=regles.length-1; i>id; i--) {
- if(regles[i].style.height != hauteurTitre) {
- regles[i].style.height=getTimeHeightClose(regles[i].style.height) + "px";
- regles[i].style.top=getTimeTopClose(regles[i].style.top) + "px";
- }
- }
-
- // ouverture du menu choisi et de tous les menus au dessus du menu choisi
- if (regles[id].style.height != hauteurMenu){
- for(i=1; i<id+1; i++) {
- if (regles[i].style.height != hauteurMenu){
- regles[i].style.top=getTimeTopOpen(regles[i].style.top) + "px";
- regles[i].style.height=getTimeHeightOpen(regles[i].style.height) + "px";;
- }
- }
- }
-
- // Si nous ne traitons pas la dernière page de menu, on anime les pages de menu jusqu'aux tailles désirées.
- // hauteur de titre pour la page de menu en dessous ou hauteur max du menu choisi
- if(regles[id+1]) {
- if (regles[id+1].style.height != hauteurTitre || regles[id].style.height != hauteurMenu){
- setTimeout("showMenu("+id+")",12);
- }
- }
- // Si on traite le menu, on anime le menu jusqu'à ce qu'il ai la hauteur max.
- else {
- if (regles[id].style.height != hauteurMenu){
- setTimeout("showMenu("+id+")",12);
- }
- }
- }
-
- //--------------------------------------------------------------
- fichier gestmenu.css (gère le style des partie animées du menu) :
- /* cf menu.js pour l'utilisation de la classe */
- .cadremenu1 {
- height : 400px;
- width : 200px;
- background-color : #FFEEFF;
- top : 20px;
- left : 20px;
- z-index : 1;
- }
-
- .cadremenu2 {
- height : 400px;
- width : 200px;
- background-color : #FFEEEE;
- top : 40px;
- left : 20px;
- z-index : 2;
- }
-
- .cadremenu3 {
- height : 400px;
- width : 200px;
- background-color : #FFEEAA;
- top : 60px;
- left : 20px;
- z-index : 3;
- }
-
- .cadremenu4 {
- height : 400px;
- width : 200px;
- background-color : #FFEE00;
- top : 80px;
- left : 20px;
- text-align : center;
- z-index : 4;
- }
-
- .cadremenu5 {
- height : 400px;
- width : 200px;
- background-color : #FFEE00;
- top : 100px;
- left : 20px;
- text-align : center;
- z-index : 5;
- }
-
- //--------------------------------------------------------------
- stylemenu.css (gère les partie statiques) :
- @CHARSET "ISO-8859-1";
- a.titre:link {
- font-family : verdana, times, sans-serif ;
- font-stretch : semi-expanded;
- color : white;
- text-decoration : none ;
- font-weight : normal ;
- font-size : 15px;
- }
-
- a.titre:visited {
- font-family : verdana, times, sans-serif ;
- font-stretch : wider;
- /*color : #ff0000;*/
- color : white;
- text-decoration : none ;
- font-weight: normal;
- font-size : 15px;
- }
-
- a.titre:hover {
- font-family : verdana, times, sans-serif ;
- font-stretch : wider;
- color : white;
- text-decoration : none;
- font-weight: bold;
- font-size : 15px;
- }
-
- a.soustitre:link {
- font-family : verdana, times, sans-serif ;
- font-stretch : semi-expanded;
- color : black;
- text-decoration : none ;
- font-weight : normal ;
- font-size : 15px;
- }
-
- a.soustitre:visited {
- font-family : verdana, times, sans-serif ;
- font-stretch : wider;
- color : black;
- text-decoration : none ;
- font-weight: normal;
- font-size : 15px;
- }
-
- a.soustitre:hover {
- font-family : verdana, times, sans-serif ;
- font-stretch : wider;
- color : black;
- text-decoration : underline;
- font-weight: normal;
- font-size : 15px;
- }
-
- ul.soustitreli {
- list-style-type: circle;
- text-align: left;
- }
-
- .cadremenu4, .cadremenu3, .cadremenu2, .cadremenu1, .cadremenu5 {
- border-color : #000000;
- border-width : 2px;
- border-style : solid;
- position : absolute;
- text-align : center;
- overflow: hidden;
- background-image: url(../images/menu.gif);
- background-repeat: repeat-x;
- background-attachment: scroll;
- }
Fichier menu.html :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link rel='stylesheet' href='./styles/stylemenu.css' type='text/css' />
<link rel='stylesheet' href='./styles/gestmenu.css' type='text/css' />
<SCRIPT type="text/javascript" src="./script/menu.js">
</SCRIPT>
</head>
<!--
Fonction d'initalisation du menu. (c.f. ./script/menu.js)
Rappel des paramètres :
idStyle : Index de la feuille de style contenu la définition des positions de menus (./styles/gestmenu.css)
hautMenu : Hauteur totale en px d'une page de menu
hautTitre : Hauteur en px du titre du menu
largMenu : Largeur du menu
topPos : Position par rapport au haut de la page en px de la première page de menu
leftPos : Position par rapport au bord gauche de la page en px des pages de menu
inter : intervale en px d'ouverture et de fermeture d'un menu
idMenu : numéro de menu a afficher à l'initialisation.
-->
<body onload="javascript:initMenu(1, 400, 20, 200, 20, 20, 10, 0);">
<form action="" method="post" name="menu">
<div class="cadremenu1">
<!-- Numéroter chaque page de menu (div) en commencant par 0 -->
<a href="#" onclick="javascript:showMenu(0);" class="titre">Menu 1</a>
<br/>
<br/>
<ul class="soustitreli">
<li><a href="#" class="soustitre">Sous Menu 1.1</a></li>
<li><a href="#" class="soustitre">Sous Menu 1.2</a></li>
<li><a href="#" class="soustitre">Sous Menu 1.3</a></li>
</ul>
</div>
</form>
<div class="cadremenu2">
<a href="#" onclick="javascript:showMenu(1);" class="titre">Menu 2</a>
<br/>
<br/>
<ul class="soustitreli">
<li><a href="#" class="soustitre">Sous Menu 2.1</a></li>
<li><a href="#" class="soustitre">Sous Menu 2.2</a></li>
</ul>
</div>
<div class="cadremenu3">
<a href="#" onclick="javascript:showMenu(2);" class="titre">Menu 3</a>
<br/>
<br/>
<ul class="soustitreli">
<li><a href="#" class="soustitre">Sous Menu 3.1</a></li>
<li><a href="#" class="soustitre">Sous Menu 3.2</a></li>
<li><a href="#" class="soustitre">Sous Menu 3.3</a></li>
<li><a href="#" class="soustitre">Sous Menu 3.4</a></li>
</ul>
</div>
<div class="cadremenu4">
<a href="#" onclick="javascript:showMenu(3);" class="titre">Menu 4</a>
<br/>
<br/>
<ul class="soustitreli">
<li><a href="#" class="soustitre">Sous Menu 3.1</a></li>
<li><a href="#" class="soustitre">Sous Menu 3.2</a></li>
<li><a href="#" class="soustitre">Sous Menu 3.3</a></li>
</ul>
</div>
<div class="cadremenu5">
<a href="#" onclick="javascript:showMenu(4);" class="titre">Menu 5</a>
<br/>
<br/>
<ul class="soustitreli">
<li><a href="#" class="soustitre">Sous Menu 5.1</a></li>
<li><a href="#" class="soustitre">Sous Menu 5.2</a></li>
<li><a href="#" class="soustitre">Sous Menu 5.3</a></li>
</ul>
</div>
</body>
</html>
//-------------------------------------------------------------------------
Fichier menu.js (gère l'animation du menu) :
/**
Fonctions javascript d'animation du menu.
Le principe :
On a autant de div que de pages de menu.
Les div sont superposés les uns sur les autres avec un décalage en hauteur pour permetre l'affichage
du titre de chaque page (div) de menu.
Lorsqu'on veut afficher une page, toutes les pages de menu dont le titre est en dessous sont réduites
et toutes les pages de menu dont le titre est au dessus sont agrandies.
De cette manière seule la page selectionnée est visible car elle cache les pages de menu dont le
titre est au dessus.
Le programme se base sur la feuille de style qui décrit les positions des menus (ici gestmenu.css)
Il doit donc y avoir exactement autant de classes css dans cette feuille de style que de pages (div) de menu.
- La premiere classe doit etre affectée la premirer page de menu.
- La seconde classe à la deuxieme page de menu et ainsi de suite...
Le données communes au menu peuvent etre regroupées dans une seule classe mais doit être placée
dans une autre feuille de style. (ici stylemenu.css)
Les données qui doivent apparaitre obligatoirement dans la feuille de style d'animation des menus sont :
- height, pour l'initialisation par la fonction initMenu
- width, pour l'initialisation par la fonction initMenu
- top, pour l'initialisation par la fonction initMenu
- left, pour l'initialisation par la fonction initMenu
- z-index, qui permet de déterminer l'ordre d'affichage sur l'axe z des pages de menu.
Pour ajouter une page de menu.
- Dans la pages HTML :
- Ajouter un nouveau div avec une nouvelle classe css
- Ajouter le nouvel index dans la fonction showMenu (index précédent + 1)
Remarque : la numérotation des index doit commencer obligatoirement par 0
- Dans la feuille de style de gestion de l'animation des menus
- recopier une classe css d'une page a la suite des autres classes
- renomer la classe ave le nom donné dans la nouvelle page de menu
- mettre à jour le z-index pour qu'elle s'affiche au dessous de toutes les autres.
*/
// Gère l'animation du menu :
idStyleSheet = 0; // Identifiant de la feuille css qui gere l'animation du menu.
hauteurMenu = 0; // Hauteur totele initiale d'une page de menu
hauteurTitre = 0; // Hauteur du titre d'une page de menu. Il s'agit de la partie toujours visible du menu
largeurMenu = 0; // Largeur d'une page de menu
topPosition = 0; // Position par rapport au haut de la page HTML
leftPosition = 0; // Position par rapport au bord gauche de la page HTML
intervale = 0; // Intervale de déplacement d'un menu.
/* la fonction initalise le menu. elle doit appelée dans le onload de la page HTML
idStyle : Index de la feuille de style contenu la définition des positions de menus (./styles/gestmenu.css)
hautMenu : Hauteur totale en px d'une page de menu
hautTitre : Hauteur en px du titre du menu
largMenu : Largeur du menu
topPos : Position par rapport au haut de la page en px de la première page de menu
leftPos : Position par rapport au bord gauche de la page en px des pages de menu
inter : Intervale en px d'ouverture et de fermeture d'un menu
idMenu : Numéro de menu a afficher à l'initialisation.
*/
function initMenu(idStyle, hautMenu, hautTitre, largMenu, topPos, leftPos, inter, idMenu) {
hauteurMenu = hautMenu + "px";
hauteurTitre = hautTitre + "px";
largeurMenu = largMenu + "px";
topPosition = topPos + "px";
leftPosition = leftPos + "px";
idStyleSheet = idStyle;
intervale = inter;
var regles = (document.styleSheets[idStyleSheet].cssRules) ? document.styleSheets[idStyleSheet].cssRules : document.styleSheets[idStyleSheet].rules;
//ferme les menus nécessaires l'affichage du menu designé dans idMenu
for(i=idMenu+1; i < regles.length; i++) {
regles[i].style.height=hautTitre + "px";
regles[i].style.top=(topPos + parseInt(hautMenu,10) + (parseInt(hautTitre,10) * (i))) + "px";
regles[i].style.width=largMenu + "px";
regles[i].style.left=leftPos + "px";
}
//Ouvrir les menus à partir du menu désigné dans idMenu
for(i=0; i < idMenu+1; i++) {
regles[i].style.height=hautMenu + "px";
regles[i].style.top=(topPos + (parseInt(hautTitre,10) * (i+1))) + "px";
regles[i].style.width=largMenu + "px";
regles[i].style.left=leftPos + "px";
}
}
// Détermine la prochaine position d'une page du menu lors de sa fermeture.
function getTimeTopClose(topPx) {
var top=topPx.substring(0, topPx.length-2);
top = parseInt(top,10);
return top + intervale;
}
// Détermine la prochaine hauteur d'une page du menu lors de sa fermeture.
function getTimeHeightClose(heightPx) {
var height=heightPx.substring(0, heightPx.length-2);
var numHauteurMenuFerme = parseInt(hauteurTitre.substring(0, hauteurTitre.length-2));
height = parseInt(height,10);
return (height-intervale <= numHauteurMenuFerme ) ? numHauteurMenuFerme : height-intervale;
}
// Détermine la prochaine position d'une page du menu lors de son ouverture.
function getTimeTopOpen(topPx) {
var top=topPx.substring(0, topPx.length-2);
top = parseInt(top,10);
return top - intervale;
}
// Détermine la prochaine hauteur d'une page du menu lors de son ouverture.
function getTimeHeightOpen(heightPx) {
var height=heightPx.substring(0, heightPx.length-2);
var numHauteurMenuOuvert = parseInt(hauteurMenu.substring(0, hauteurMenu.length-2));
height = parseInt(height,10);
return (height+intervale >= numHauteurMenuOuvert) ? numHauteurMenuOuvert : height+intervale;
}
// Anime le menu pour afficher la page données en id.
function showMenu(id) {
// recupération des regles css des menus.
var regles = (document.styleSheets[idStyleSheet].cssRules) ? document.styleSheets[idStyleSheet].cssRules : document.styleSheets[idStyleSheet].rules;
// fermeture de tous les menus en dessous du menu choisi
for(i=regles.length-1; i>id; i--) {
if(regles[i].style.height != hauteurTitre) {
regles[i].style.height=getTimeHeightClose(regles[i].style.height) + "px";
regles[i].style.top=getTimeTopClose(regles[i].style.top) + "px";
}
}
// ouverture du menu choisi et de tous les menus au dessus du menu choisi
if (regles[id].style.height != hauteurMenu){
for(i=1; i<id+1; i++) {
if (regles[i].style.height != hauteurMenu){
regles[i].style.top=getTimeTopOpen(regles[i].style.top) + "px";
regles[i].style.height=getTimeHeightOpen(regles[i].style.height) + "px";;
}
}
}
// Si nous ne traitons pas la dernière page de menu, on anime les pages de menu jusqu'aux tailles désirées.
// hauteur de titre pour la page de menu en dessous ou hauteur max du menu choisi
if(regles[id+1]) {
if (regles[id+1].style.height != hauteurTitre || regles[id].style.height != hauteurMenu){
setTimeout("showMenu("+id+")",12);
}
}
// Si on traite le menu, on anime le menu jusqu'à ce qu'il ai la hauteur max.
else {
if (regles[id].style.height != hauteurMenu){
setTimeout("showMenu("+id+")",12);
}
}
}
//--------------------------------------------------------------
fichier gestmenu.css (gère le style des partie animées du menu) :
/* cf menu.js pour l'utilisation de la classe */
.cadremenu1 {
height : 400px;
width : 200px;
background-color : #FFEEFF;
top : 20px;
left : 20px;
z-index : 1;
}
.cadremenu2 {
height : 400px;
width : 200px;
background-color : #FFEEEE;
top : 40px;
left : 20px;
z-index : 2;
}
.cadremenu3 {
height : 400px;
width : 200px;
background-color : #FFEEAA;
top : 60px;
left : 20px;
z-index : 3;
}
.cadremenu4 {
height : 400px;
width : 200px;
background-color : #FFEE00;
top : 80px;
left : 20px;
text-align : center;
z-index : 4;
}
.cadremenu5 {
height : 400px;
width : 200px;
background-color : #FFEE00;
top : 100px;
left : 20px;
text-align : center;
z-index : 5;
}
//--------------------------------------------------------------
stylemenu.css (gère les partie statiques) :
@CHARSET "ISO-8859-1";
a.titre:link {
font-family : verdana, times, sans-serif ;
font-stretch : semi-expanded;
color : white;
text-decoration : none ;
font-weight : normal ;
font-size : 15px;
}
a.titre:visited {
font-family : verdana, times, sans-serif ;
font-stretch : wider;
/*color : #ff0000;*/
color : white;
text-decoration : none ;
font-weight: normal;
font-size : 15px;
}
a.titre:hover {
font-family : verdana, times, sans-serif ;
font-stretch : wider;
color : white;
text-decoration : none;
font-weight: bold;
font-size : 15px;
}
a.soustitre:link {
font-family : verdana, times, sans-serif ;
font-stretch : semi-expanded;
color : black;
text-decoration : none ;
font-weight : normal ;
font-size : 15px;
}
a.soustitre:visited {
font-family : verdana, times, sans-serif ;
font-stretch : wider;
color : black;
text-decoration : none ;
font-weight: normal;
font-size : 15px;
}
a.soustitre:hover {
font-family : verdana, times, sans-serif ;
font-stretch : wider;
color : black;
text-decoration : underline;
font-weight: normal;
font-size : 15px;
}
ul.soustitreli {
list-style-type: circle;
text-align: left;
}
.cadremenu4, .cadremenu3, .cadremenu2, .cadremenu1, .cadremenu5 {
border-color : #000000;
border-width : 2px;
border-style : solid;
position : absolute;
text-align : center;
overflow: hidden;
background-image: url(../images/menu.gif);
background-repeat: repeat-x;
background-attachment: scroll;
}
Conclusion
J'ai commenté au maximum. j'attends les votre. A ceux qui veulent se passez du stylesheet je suis preneur...
Sources de la même categorie
MENU VERTICALE GAUCHE ET DROIT DEROULANTMENU VERTICALE GAUCHE ET DROIT DEROULANTc'est repris d'une de mes source (menu glissant) sauf que au lieu de deplacer un element dans le document c'est un div en overflow hidden qui s'agrand...
par kazma
MENU VERTICALE EN TRANSPARENCEMENU VERTICALE EN TRANSPARENCECe menu est complètement modifiable, les fenêtres de sous menus étant composées de plusieur images, vous pouvez modifier la taille des sous menus en...
par dlvains
MENU DÉROULANT EN IMAGESMENU DÉROULANT EN IMAGES un menu simple a modifier, il vous suffit de changer le texte sur le PSD et d'enregistrer au format PNG.
si vous modifiez la largeur des images, pe...
par dlvains
TBFRAME: TAB BROWSING FRAMETBFRAME: TAB BROWSING FRAME Cela fait un moment que j'avais eu l'idée de mettre en ligne ce script, mais je n'avais jamais eu le temps de mettre un coup de propre dans le code ai...
par triumphs
MENU PRINCIPALMENU PRINCIPALBonjour, dans ce petit source, j'ai met une belle menu avec php,javascript, css, pour me contactet , ABOUSSEBABA ALI <contact@aliwebmaster.com>, à vou...
par ali1987
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
menu déroulant [ par jotrash ]
trasjoBONJOUR A TOUS.Je suis débutant en codes et je voudrais crée pour un site un mennu déroulant du genre de celui de microsoft ou dans ce style.Que
menu déroulant et liste de fichiers [ par maitrekanter59 ]
bonjour,je voudrais créer un menu déroulant dans lequel on trouve la liste des fichiers d'un répertoire. le truc c que qd on supprime un fichier du ré
centrage d' un script [ par warioguillaume ]
salut à tousj utilise un script de menu déroulant horizontalen 1024x768 je spécifie en x et en y à quel endroit je veux le placer et ca marchemais dès
"menu déroulant" [ par AngeloVivaldi ]
Bonjour à tous. Je suis un peu débutant en JavaScript, je vous expose le problème : Je voudrai, sur mon site, que lorsque l'utilisateur clique sur u
menu déroulant [ par booun ]
SOSje suis nouveau en javaj'ai téléchargé le code de menu déroulant sur ce siteil marche super bien, mais j'aurais voulu rajouter une rubrique au troi
Menu déroulant sans hyperlien = IMPASSE [ par ulys31 ]
Bonjour,J'ai téléchargé la source no 16608, soit celle qui fait afficher un menu à multi-niveaux.Le gros hic est que vous avez complètement oublié les
Menu déroulant [ par Looping2605 ]
Bonsoir,j'ai un petit problème avec mon site web.Alors j'ai une page avec un formulaire, et dans ce formulaire 2 menu déroulant.J'aimerais, lorsque le
petit probleme de menu déroulant [ par piccolo adun ]
Comment faire pour qu'un menu déroulant situé sur un frame en haut de la page puisse se dérouler "par dessus" le frame contenant les documents en dess
Pb menu déroulant... [ par optimed ]
Bonjour!Je vous explique mon problème: j'ai un menu déroulant placé dans un formulaire et je voudrais que pour l'item sélectionné dans la liste corres
Menu Déroulant avec Javascript [ par Tesnyme ]
Bonjour,j'ai un Probleme de menu déroulant crée par jacascript. le probleme se concerne quand on click sur le Menu Déroulant la liste sera affichée ma
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|