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
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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|