begin process at 2010 03 21 10:25:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Menu & Co

 > MENU DÉROULANT (JE SAIS.... ENCORE...) EN JAVASCRIPT & CSS.

MENU DÉROULANT (JE SAIS.... ENCORE...) EN JAVASCRIPT & CSS.


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Menu & Co Classé sous :menu, déroulant, paramétrable, css Niveau :Initié Date de création :15/05/2006 Date de mise à jour :16/05/2006 07:50:14 Vu / téléchargé :18 377 / 3 687

Auteur : inami

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
J'avais besoin d'un menu déroulant (2 niveaux) efficace et pas trop lourd et facilement paramétrable pour plusieurs sites.
J'ai trouvé mon bonheur.

Avant tout merci à iubito (dont je me suis inspiré http://iubito.free.fr) et aussi à pompage.net (http://pompage.net/pompe/deroulants/) où j'ai trouvé la façon de définir un event 'mouseover' sur les tags <LI> (Je n'ai pas changé un iota de ce script, c'est à eux)

DONC un concentré de bonnes idées remasterisées !!!!!!!!!!!!!!!

Mon menu permet d'insérer un menu déroulant avec sous menu (avec un peu de modif on peut insérer des sous-niveaux).
Les sous-menus peuvent s'afficher avec une icône.
Le menu est en fait un <UL><LI>, (là je n'invente rien) accompagné d'un CSS qui redéfinit ces tags <Menu.css>.
Les items du menus sont paramétrables dans le fichier <OptionMenu.js>

Fab

Source

  • La page à afficher :
  • Fo mettre ce qui fo
  • <LINK href="../css/Menu.css" rel="stylesheet" type="text/css">
  • <LINK href="../css/Page.css" rel="stylesheet" type="text/css">
  • <script src="../menu/OptionMenu.js"></script>
  • <script src="../menu/ULMenu.js"></script>
  • <TD><!-- Début du menu Là où cela vous arrange, MAIS une table est toujours bien -->
  • <script>Display_Menu();</script>
  • <!-- Fin du menu -->
  • </TD>
  • /*Dans le fichier ULMenu.js
  • function Display_Menu() {
  • var i= 0, j = 0;
  • // Début du layer qui contient le menu
  • document.write('<DIV id="div_Menu">');
  • document.write('<UL id="ul_MainMenu">'); // Début bloc UL niveau 1. Ne pas oublier l'id, c'est l'objet de base.
  • // Début affichage du menu (bloc LI) de niveau 1
  • for (i = 0; i < iNbMenu; i++) {
  • document.write('<LI><A href="#"> ' + aMenu[i][0] + '</A><UL>'); // Le texte niveau 1 à afficher
  • for (j = 1; j < aMenu[i].length; j++) {
  • // Début affichage du menu de niveau 2
  • document.write('<LI><A href="'); // Début affichage du menu (bloc LI) de niveau 2
  • document.write(SplitOptionSsMenu(aMenu[i][j], 'URL')); // Ici le lien vers la page à afficher
  • document.write('"> <img src="');
  • // Placer une image (25x25). Si pas TOUJOURS placer une invisible.
  • document.write(SplitOptionSsMenu(aMenu[i][j], 'IMG'));
  • document.write('"> ° ');
  • document.write(SplitOptionSsMenu(aMenu[i][j], 'TXT')); // Le texte niveau 2 à afficher
  • document.write('</A></LI>'); // Fin affichage du menu (bloc LI) de niveau 2
  • }
  • document.write('</UL>'); // Fin bloc UL niveau 2
  • // Fin affichage du menu de niveau 2
  • document.write('</LI>');// Fin affichage du menu (bloc LI) de niveau 1
  • }
  • document.write('</UL>'); // Début bloc UL niveau 1
  • document.write('</DIV>');
  • // Fin du layer qui contient le menu
  • }
  • Le fichier OptionMenu.js comprend une la fonction qui retourne les URL, IMG, et TXT ---> SplitOptionSsMenu
  • Celle-ci est basée sur un tableau à 2 dimensions de string qui contiennent les infos nécessaire à l'affichage.
  • Du genre :
  • aMenu[0] = new Array(5);
  • aMenu[0][0] = 'Le Jack Russell';
  • aMenu[0][1] = 'Jack Russell' + SEPARATOR_URL + 'JackRussell.htm' + SEPARATOR_IMG + '../menu/petitjack.gif';
  • aMenu[0][2] = 'Son histoire' + SEPARATOR_URL + 'JohnRussell.htm' + SEPARATOR_IMG + '../menu/Histoire.gif';
  • Et la fonctoin lit et retourne :
  • function SplitOptionSsMenu(sOption, sType) {
  • var iPos1 = 0, iPos2 = 0;
  • var sRetValue = '';
  • switch (sType) {
  • case 'TXT':
  • sRetValue = sOption.substr(0,sOption.indexOf(SEPARATOR_URL));
  • break;
  • case 'URL':
  • iPos1 = sOption.indexOf(SEPARATOR_URL) + 2, sOption.length;
  • iPos2 = sOption.indexOf(SEPARATOR_IMG), sOption.length;
  • sRetValue = sOption.substring(iPos1, iPos2);
  • break;
  • case 'IMG':
  • sRetValue = sOption.substr(sOption.indexOf(SEPARATOR_IMG) + 2,sOption.length);
  • break;
  • }
  • return sRetValue;
  • }
  • Et voilà ...........
  • Je vous fournis le zip avec ce qui est nécessaire.
  • J'ai testé en FireFox 1.5.0.3 et IE 6.0.2800. Mais j'ai pas le temps de voir avec les autres. Donc si vous avez un autre browser ... dites moi koi
  • Fab
La page à afficher :
Fo mettre ce qui fo

<LINK href="../css/Menu.css" rel="stylesheet" type="text/css">
<LINK href="../css/Page.css" rel="stylesheet" type="text/css">
<script src="../menu/OptionMenu.js"></script>
<script src="../menu/ULMenu.js"></script>


            <TD><!-- Début du menu Là où cela vous arrange, MAIS une table est toujours bien -->
              <script>Display_Menu();</script>
              <!-- Fin du menu -->
            </TD>

/*Dans le fichier ULMenu.js
function Display_Menu() {
var i= 0, j = 0;

	// Début du layer qui contient le menu
	document.write('<DIV id="div_Menu">');
	document.write('<UL id="ul_MainMenu">'); // Début bloc UL niveau 1.  Ne pas oublier l'id, c'est l'objet de base.
				
	// Début affichage du menu (bloc LI) de niveau 1

	for (i = 0; i < iNbMenu; i++) {
		document.write('<LI><A href="#"> ' + aMenu[i][0] + '</A><UL>'); // Le texte niveau 1 à afficher
		for (j = 1; j < aMenu[i].length; j++) {
			// Début affichage du menu de niveau 2
			document.write('<LI><A href="');  // Début affichage du menu (bloc LI) de niveau 2
			document.write(SplitOptionSsMenu(aMenu[i][j], 'URL')); // Ici le lien vers la page à afficher
			document.write('"> <img src="');
			// Placer une image (25x25). Si pas TOUJOURS placer une invisible.
			document.write(SplitOptionSsMenu(aMenu[i][j], 'IMG')); 
			document.write('"> ° ');
			document.write(SplitOptionSsMenu(aMenu[i][j], 'TXT')); // Le texte niveau 2 à afficher
			document.write('</A></LI>');  // Fin affichage du menu (bloc LI) de niveau 2
		}
		document.write('</UL>'); // Fin bloc UL niveau 2
		// Fin affichage du menu de niveau 2
		document.write('</LI>');// Fin affichage du menu (bloc LI) de niveau 1
	}

	document.write('</UL>'); // Début bloc UL niveau 1
	document.write('</DIV>');
	// Fin du layer qui contient le menu
}


Le fichier OptionMenu.js comprend une la fonction qui retourne les URL, IMG, et TXT ---> SplitOptionSsMenu

Celle-ci est basée sur un tableau à 2 dimensions de string qui contiennent les infos nécessaire à l'affichage.
Du genre :

	aMenu[0] = new Array(5);
	aMenu[0][0] = 'Le Jack Russell';
	aMenu[0][1] = 'Jack Russell' + SEPARATOR_URL + 'JackRussell.htm' + SEPARATOR_IMG + '../menu/petitjack.gif';
	aMenu[0][2] = 'Son histoire' + SEPARATOR_URL + 'JohnRussell.htm' + SEPARATOR_IMG + '../menu/Histoire.gif';

Et la fonctoin lit et retourne :

function SplitOptionSsMenu(sOption, sType) {
var iPos1 = 0, iPos2 = 0;
var sRetValue = '';

	switch (sType) {
		case 'TXT':
			sRetValue = sOption.substr(0,sOption.indexOf(SEPARATOR_URL));
			break;
		case 'URL':
			iPos1 = sOption.indexOf(SEPARATOR_URL) + 2, sOption.length;
			iPos2 = sOption.indexOf(SEPARATOR_IMG), sOption.length;
			sRetValue = sOption.substring(iPos1, iPos2);
			break;
		case 'IMG':
			sRetValue = sOption.substr(sOption.indexOf(SEPARATOR_IMG) + 2,sOption.length);
			break;
	}
return sRetValue;
}


Et voilà ...........

Je vous fournis le zip avec ce qui est nécessaire.

J'ai testé en FireFox 1.5.0.3 et IE 6.0.2800.  Mais j'ai pas le temps de voir avec les autres.  Donc si vous avez un autre browser ... dites moi koi

Fab

 Conclusion

Merci à iubito et à pompage.net

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 mai 2006 07:50:15 :
J'ai juste déplacer dans la catégorie "Menu & Co". C + approprié.

 Sources de la même categorie

Source avec Zip Source avec une capture MENU VERTICALE GAUCHE ET DROIT DEROULANT par kazma
Source avec Zip Source avec une capture MENU VERTICALE EN TRANSPARENCE par dlvains
Source avec Zip Source avec une capture MENU DÉROULANT EN IMAGES par dlvains
Source avec Zip TBFRAME: TAB BROWSING FRAME par triumphs
Source avec Zip Source avec une capture MENU PRINCIPAL par ali1987

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [MEC] MENUS EN CSS par Bul3
Source avec Zip MENU CONTEXTUEL GRÂCE AU CLICK DROIT DE LA SOURIS AVEC DES M... par OB1_12
Source avec Zip Source avec une capture MENU VERTICAL D'UNE PAGE DHTML, GENERE DYNAMIQUEMENT, UTILIS... par LUDINSKI
AMÉLIORATION DU MENU DÉROULANT TRÈS SIMPLE POSTÉ IL Y A QUIN... par Patrice H
Source avec Zip Source avec une capture IUBITO'S MENU V3.1 : QUASIMENT EN CSS, COMPATIBLE IE/NS6+/MO... par iubito

Commentaires et avis

Commentaire de brivet le 01/08/2006 17:24:40

salut, juste une question , "aMenu[0] = new Array(5);" pourquoi la valeur (5).Merci pour une explication pouvant m'éclairer.

Commentaire de inami le 01/08/2006 18:30:29

La valeur 5.  C'est le nombre de items "Sous Menu" de aMenu que tu veux.
Il est vrai qu'ici, j'ai coupé mon code pour pas faire long.  J'aurais du mettre 3.

Regarde dans le fichier même.

Si tu veux savoir +. Demande.

Fab

Commentaire de brivet le 01/08/2006 19:02:56

merci Fab il me semblait que c'était cela , mais j'avais un doute

Brivet

Commentaire de Elessar8905 le 11/09/2006 19:11:18

il y a une demo quelque part ou pas ?

Commentaire de inami le 11/09/2006 20:39:24

c'est un exemple qui fonctionne.

MAIS (mea culpa) sur l'image de la page "index.htm" change le lien vers "fr/bianca.htm" et cela marchera.

SINON visitez un de mes sites : http://www.jack-russell.tk/

Commentaire de x1fabrice1x le 05/06/2007 02:48:46

Citation: "SINON visitez un de mes sites : http://www.jack-russell.tk/"

LOL, sous IE le menu ne s'affiche même pas.

Commentaire de francoisobert le 23/06/2007 18:22:36

Bonjour

Le code source afficher ci-dessus et à mettre entre quelle balise ? HEAD ou BODY ?
C'est du HTML ou PHP ?

Merci encore.

Commentaire de inami le 24/06/2007 10:17:24

A l'attention de Fabrice,
LOL, c ke t'as un sérieux problème avec IE !!!!
J'ai testé sous IE 6 & 7 et ça marche. ET EN PLUS sur des pc & connections DIFFERENTES

Commentaire de inami le 24/06/2007 10:32:43

A l'attention de François Robert,

L'exemple fonctionne nickel. Download le ZIP TOUT Y EST

Commentaire de cc94 le 10/01/2008 15:52:29

bonjour

j'ai un petit probleme  j'ai des photos et des animation flash sous mozilla qui n'apparaissent pas
pouvez vous me dire comment resoudre ce petit soucit


merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Effet progressif lors du déployement d'un menu déroulant en CSS [ par qntoinOo ] Bonjour,J'aimerais savoir comment il est possible de faire un effet progressif sur un menu déroulant en CSS (Je me sers balise &lt;LI&gt;&lt;UL&gt; to Menu déroulant en accordéon sans CSS ??? [ par sabinep38 ] Bonjour, je souhaiterais créer un menu déroulant en accordéon sans javascript (si possible) comme sur le site www/kauri.be/sitemap.aspxPouvez-vous m'a Menu déroulant en fonction d'un autre [ par lavm01 ] Bonjour,Comment construire un menu déroulant en javascript en fonction du choix de 2 autres menus déroulant. Ex:&lt;b&gt;Votre Nom: &lt;/b&gt; &lt;sel calcul de devis avec menu déroulant [ par Fredd35 ] Bonjour, Je ne parviens pas a trouver un script, qui me permet de calculer un total a partir d'un menu déroulant. voici le cas. Admettons que je ven Menu déroulant [ par dave1030 ] HelloVoila je voudrait faire un menu déroulant exactement comme celui-ci www.apple.ch   Voila ce que j'ai déjà trouvé mais 2 points ne me conviennent removeChild [ par webxpro ] Bonjour,j'ai le code ci-dessous. J'aimerais que quand on sélectionne le 1 ( qui est le prémier élément ) dans le menu déroulant 1 ( myList) que ça sup Menu déroulant [ par samiamgh ] Bonjour,j'y connais pas grand chose en javascript... j'aimerai savoir comment créer un menu déroulant qui permettrais d'avoir un genre de devis en lig Menu déroulant imbriqué [ par Noa30 ] Bonjour,donc je souhaite réalisé une boutique en ligne sur mon site : www.lartapis.fr/boutique.phpje l'ai créer de toutes pièce et je souhaite resté a Click & Show ? [ par odakawoi ] Bonjour à tous, messieurs les touche-à-tout ! [b]En gros, voici l'idée :[/b] intégrer un moteur de recherche (ou un menu déroulant au pire), et fair Menu déroulant [ par odakawoi ] Salut à vous, Voici, tout d'abord, mes codes : [B]En :[/B] [CODE=java] function chgpage(formulaire) { if (formulaire.listepages.selectedIndex


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales