Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MENU VERTICAL/HORIZONTAL FACILEMENT PARAMÉTRABLE ET MODIFIABLE


Information sur la source

Catégorie :Menu & Co Classé sous : menu, horizontal, vertical, ajustable Niveau : Initié Date de création : 22/07/2005 Date de mise à jour : 25/07/2005 15:23:51 Vu / téléchargé: 30 142 / 6 397

Note :
7,29 / 10 - par 7 personnes
7,29 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Voici encore un menu en JavaScript... On peut facilement le modifier, et meme y ajouter des éléments une fois la page chargée (je n'ai pas encore fait la suppression, mais ca viendra peut etre).
Les couleurs de départ des cellules sont fixées dans des variables au début du fichier .js.

C'est tres simple, mais je vais encore l'améliorer... j'attend vos suggestions.
 

Source

  • //Définition des variables
  • var Tableau=new Liste();
  • var Affichage,Time;
  • Tableau.Nombre=0;
  • Tableau.HzVt=1;
  • Tableau.Timer=1;
  • Tableau.TOut=2000;
  • Tableau.MOut="#FFF8F0";
  • Tableau.MOver="#FFF8F0";
  • Tableau.SMOut="#F0FFF0";
  • Tableau.SMOver="#FFF0F0";
  • //Définition des titres et sous titres des menus
  • Tableau.AddT("Titre 1");
  • Tableau.Add(0,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 1')");
  • Tableau.Add(0,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 1')");
  • Tableau.Add(0,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 1')");
  • Tableau.AddT("Titre 2");
  • Tableau.Add(1,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 2')");
  • Tableau.Add(1,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 2')");
  • Tableau.Add(1,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 2')");
  • Tableau.Add(1,"Sous-titre 4","javascript:alert('Sous-titre 4 du menu 2')");
  • Tableau.AddT("Titre 3","javascript:alert('Titre du menu 3')");
  • Tableau.Add(2,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 3')");
  • Tableau.Add(2,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 3')");
  • Tableau.Add(2,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 3')");
  • Tableau.AddT("Titre 4");
  • Tableau.Add(3,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 4')");
  • Tableau.AddT("Titre 5","javascript:alert('Titre du menu 5')");
  • //Définition des fonctions
  • //Définition de l'objet liste de menus
  • function Liste(){
  • this.Nombre; //Nombre de menus
  • this.HzVt; //Horizontal : Valeur nulle ; Vertical : valeur non nulle
  • this.Timer; //Timer actif : Valeur non nulle ; Timer inactif : Valeur nulle
  • this.TOut; //Temps à attendre pour fermer le menu si le timer est actif (en ms)
  • this.MOut; //Couleur du titre d'un menu non survolé
  • this.MOver; //Couleur du titre d'un menu survolé
  • this.SMOut; //Couleur d'un sous menu non survolé
  • this.SMOver; //Couleur d'un sous menu survolé
  • this.Menus=new Array();
  • this.Add=AddMenu;
  • this.Aff=AffMenu;
  • this.AddT=AddTitre;
  • }
  • //Définition de l'objet Menu
  • function Menu(){
  • this.Titre; //Titre du menu
  • this.State; //Etat du menu (affiché/masqué)
  • this.nb; //Nombre de sous menus
  • this.SMenu=new Array();
  • }
  • //Fonction chargée d'ajouter un titre aux menus
  • //Nom : Texte qui sera affiché sur la page HTML
  • //Lien (optionel) : Lien hypertexte associé au titre du menu
  • //Dest (optionel) : Frame cible du lien
  • function AddTitre(Nom,Lien,Dest){
  • this.Menus[this.Nombre]=new Menu();
  • if(Lien)
  • if(Dest)this.Menus[this.Nombre].Titre='<a href="'+Lien+'" target="'+Dest+'">'+Nom+'</a>';
  • else this.Menus[this.Nombre].Titre='<a href="'+Lien+'">'+Nom+'</a>';
  • else this.Menus[this.Nombre].Titre=Nom;
  • this.Menus[this.Nombre].nb=0;
  • this.Nombre++;
  • }
  • //Fonction chargée de créer les menus
  • //NumMenu : -1 si c'est un titre, numéro de sous menu sinon
  • //Nom : Texte qui sera affiché sur la page HTML
  • //Lien (optionel) : Lien hypertexte associé à l'entrée du menu
  • //Dest (optionel) : Frame cible du lien
  • function AddMenu(NumMenu,Nom,Lien,Dest){
  • if(!this.Nombre)return;
  • if(Lien)
  • if(Dest)this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]='<a href="'+Lien+'" target="'+Dest+'">'+Nom+'</a>';
  • else this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]='<a href="'+Lien+'">'+Nom+'</a>';
  • else this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]=Nom;
  • this.Menus[NumMenu].nb++;
  • }
  • //Fonction chargée d'afficher ou masquer les menus
  • //m : Positif si le menu doit etre affiché, négatif si le menu doit etre masqué
  • //n : Numéro du menu à afficher ou masquer
  • function AffMenu(m,n){
  • if(m==1&&!this.HzVt)for(i=0;i<Tableau.Nombre;i++)this.Aff(-1,i);
  • //Création du tableau contenant le titre
  • Affichage="<table style='background-color:"+this.MOut+"' ";
  • //Quand on clique sur ce tableau, le sous menu est affiché/masqué
  • Affichage+="onClick='Tableau.Aff("+(-m)+","+n+")'><tr ";
  • Affichage+="onMouseOver='this.setAttribute(\"bgColor\",\""+this.MOver+"\")";
  • if(m==1&&!this.HzVt&&this.Timer)Affichage+=";clearTimeout(Time)";
  • Affichage+="' onMouseOut='this.setAttribute(\"bgColor\",\""+this.MOut+"\")";
  • if(m==1&&!this.HzVt&&this.Timer)Affichage+=";Time=setTimeout(\"Tableau.Aff(-1,"+n+")\","+this.TOut+")";
  • Affichage+="'><td align='center'>";
  • Affichage+=this.Menus[n].Titre;
  • Affichage+="</td></tr></table>";
  • Affichage+="<div ID='SMenu"+n+"'>";
  • //Si on doit afficher le sous menu
  • if(m>0){
  • Affichage+="<table style='background-color:"+this.SMOut+"'>";
  • for(i=0;i<this.Menus[n].nb;i++){
  • //Ajout des textes des sous menus
  • Affichage+="<tr ";
  • Affichage+="onMouseOver='this.setAttribute(\"bgColor\",\""+this.SMOver+"\")";
  • if(m==1&&!this.HzVt&&this.Timer)Affichage+=";clearTimeout(Time)";
  • Affichage+="' onMouseOut='this.setAttribute(\"bgColor\",\""+this.SMOut+"\")";
  • if(m==1&&!this.HzVt&&this.Timer)Affichage+=";Time=setTimeout(\"Tableau.Aff(-1,"+n+")\","+this.TOut+")";
  • Affichage+="'><td>";
  • Affichage+=this.Menus[n].SMenu[i];
  • Affichage+="</td></tr>";
  • }
  • Affichage+="</table>";
  • }
  • Affichage+="&nbsp;</div>";
  • document.getElementById("Menu"+n).innerHTML=Affichage;
  • }
  • //Fonction chargée d'afficher les menus au chargement de la page
  • function InitMenu(){
  • //On appelle la fonction AffMenu, les sous menus sont masqués par défaut
  • document.write('<table class="table">');
  • document.write(Tableau.HzVt?'<tr><td width=110>':'<tr>');
  • for(i=0;i<Tableau.Nombre;i++){
  • document.write(Tableau.HzVt?'':'<td width=110 valign="top">');
  • document.write("<div ID=Menu"+i+"></div>");
  • Tableau.Aff(-1,i);
  • document.write(Tableau.HzVt?'':'</td>');
  • }
  • document.write(Tableau.HzVt?'</td></tr>':'</tr>');
  • }
//Définition des variables
var Tableau=new Liste();
var Affichage,Time;

Tableau.Nombre=0;
Tableau.HzVt=1;
Tableau.Timer=1;
Tableau.TOut=2000;
Tableau.MOut="#FFF8F0";
Tableau.MOver="#FFF8F0";
Tableau.SMOut="#F0FFF0";
Tableau.SMOver="#FFF0F0";

//Définition des titres et sous titres des menus
Tableau.AddT("Titre 1");
Tableau.Add(0,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 1')");
Tableau.Add(0,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 1')");
Tableau.Add(0,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 1')");
Tableau.AddT("Titre 2");
Tableau.Add(1,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 2')");
Tableau.Add(1,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 2')");
Tableau.Add(1,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 2')");
Tableau.Add(1,"Sous-titre 4","javascript:alert('Sous-titre 4 du menu 2')");
Tableau.AddT("Titre 3","javascript:alert('Titre du menu 3')");
Tableau.Add(2,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 3')");
Tableau.Add(2,"Sous-titre 2","javascript:alert('Sous-titre 2 du menu 3')");
Tableau.Add(2,"Sous-titre 3","javascript:alert('Sous-titre 3 du menu 3')");
Tableau.AddT("Titre 4");
Tableau.Add(3,"Sous-titre 1","javascript:alert('Sous-titre 1 du menu 4')");
Tableau.AddT("Titre 5","javascript:alert('Titre du menu 5')");

//Définition des fonctions
	//Définition de l'objet liste de menus
function Liste(){
	this.Nombre;		//Nombre de menus
	this.HzVt;		//Horizontal : Valeur nulle ; Vertical : valeur non nulle
	this.Timer;		//Timer actif : Valeur non nulle ; Timer inactif : Valeur nulle
	this.TOut;		//Temps à attendre pour fermer le menu si le timer est actif (en ms)
	this.MOut;		//Couleur du titre d'un menu non survolé
	this.MOver;		//Couleur du titre d'un menu survolé
	this.SMOut;		//Couleur d'un sous menu non survolé
	this.SMOver;		//Couleur d'un sous menu survolé
	this.Menus=new Array();
	this.Add=AddMenu;
	this.Aff=AffMenu;
	this.AddT=AddTitre;
}

	//Définition de l'objet Menu
function Menu(){
	this.Titre;		//Titre du menu
	this.State;		//Etat du menu (affiché/masqué)
	this.nb;		//Nombre de sous menus
	this.SMenu=new Array();
}

	//Fonction chargée d'ajouter un titre aux menus
		//Nom : Texte qui sera affiché sur la page HTML
		//Lien (optionel) : Lien hypertexte associé au titre du menu
		//Dest (optionel) : Frame cible du lien
function AddTitre(Nom,Lien,Dest){
	this.Menus[this.Nombre]=new Menu();
	if(Lien)
		if(Dest)this.Menus[this.Nombre].Titre='<a href="'+Lien+'" target="'+Dest+'">'+Nom+'</a>';
		else this.Menus[this.Nombre].Titre='<a href="'+Lien+'">'+Nom+'</a>';
	else this.Menus[this.Nombre].Titre=Nom;
	this.Menus[this.Nombre].nb=0;
	this.Nombre++;
}

	//Fonction chargée de créer les menus
		//NumMenu : -1 si c'est un titre, numéro de sous menu sinon
		//Nom : Texte qui sera affiché sur la page HTML
		//Lien (optionel) : Lien hypertexte associé à l'entrée du menu
		//Dest (optionel) : Frame cible du lien
function AddMenu(NumMenu,Nom,Lien,Dest){
	if(!this.Nombre)return;
	if(Lien)
		if(Dest)this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]='<a href="'+Lien+'" target="'+Dest+'">'+Nom+'</a>';
		else this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]='<a href="'+Lien+'">'+Nom+'</a>';
	else this.Menus[NumMenu].SMenu[this.Menus[NumMenu].nb]=Nom;
	this.Menus[NumMenu].nb++;
}

	//Fonction chargée d'afficher ou masquer les menus
		//m : Positif si le menu doit etre affiché, négatif si le menu doit etre masqué
		//n : Numéro du menu à afficher ou masquer
function AffMenu(m,n){
	if(m==1&&!this.HzVt)for(i=0;i<Tableau.Nombre;i++)this.Aff(-1,i);
	//Création du tableau contenant le titre
	Affichage="<table style='background-color:"+this.MOut+"' ";
	//Quand on clique sur ce tableau, le sous menu est affiché/masqué
	Affichage+="onClick='Tableau.Aff("+(-m)+","+n+")'><tr ";
	Affichage+="onMouseOver='this.setAttribute(\"bgColor\",\""+this.MOver+"\")";
	if(m==1&&!this.HzVt&&this.Timer)Affichage+=";clearTimeout(Time)";
	Affichage+="' onMouseOut='this.setAttribute(\"bgColor\",\""+this.MOut+"\")";
	if(m==1&&!this.HzVt&&this.Timer)Affichage+=";Time=setTimeout(\"Tableau.Aff(-1,"+n+")\","+this.TOut+")";
	Affichage+="'><td align='center'>";
	Affichage+=this.Menus[n].Titre;
	Affichage+="</td></tr></table>";
	Affichage+="<div ID='SMenu"+n+"'>";
	//Si on doit afficher le sous menu
	if(m>0){
		Affichage+="<table style='background-color:"+this.SMOut+"'>";
		for(i=0;i<this.Menus[n].nb;i++){
			//Ajout des textes des sous menus
			Affichage+="<tr ";
			Affichage+="onMouseOver='this.setAttribute(\"bgColor\",\""+this.SMOver+"\")";
			if(m==1&&!this.HzVt&&this.Timer)Affichage+=";clearTimeout(Time)";
			Affichage+="' onMouseOut='this.setAttribute(\"bgColor\",\""+this.SMOut+"\")";
			if(m==1&&!this.HzVt&&this.Timer)Affichage+=";Time=setTimeout(\"Tableau.Aff(-1,"+n+")\","+this.TOut+")";
			Affichage+="'><td>";
			Affichage+=this.Menus[n].SMenu[i];
			Affichage+="</td></tr>";
		}
		Affichage+="</table>";
	}
	Affichage+="&nbsp;</div>";
	document.getElementById("Menu"+n).innerHTML=Affichage;
}

	//Fonction chargée d'afficher les menus au chargement de la page
function InitMenu(){
	//On appelle la fonction AffMenu, les sous menus sont masqués par défaut
	document.write('<table class="table">');
	document.write(Tableau.HzVt?'<tr><td width=110>':'<tr>');
	for(i=0;i<Tableau.Nombre;i++){
		document.write(Tableau.HzVt?'':'<td width=110 valign="top">');
		document.write("<div ID=Menu"+i+"></div>");
		Tableau.Aff(-1,i);
		document.write(Tableau.HzVt?'':'</td>');
	}
	document.write(Tableau.HzVt?'</td></tr>':'</tr>');
}

Conclusion

Testé Windows XP Pro SP2 avec IE6 et FireFox.

Bugs connus :
- Pour les menus contenant des liens ,le lien ne fonctionne pas sous FireFox (peut etre la redondance avec le onClick qui permet d'afficher ou masquer le sous menu).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

22 juillet 2005 21:19:08 :
Commentaires "plus clairs"
23 juillet 2005 10:11:58 :
MàJ comentaire final
24 juillet 2005 20:05:45 :
Ajout d'une variable permettant de passer de vertical à horizontal (et modif du titre de la source) Le sous menu affiché est masqué quand on en ouvre un autre en mode horizontal Ajout d'un paramètre à la fonction AddMenu, permettant de diriger le lien vers un autre iframe Modification des couleurs (c'est moins moche)
24 juillet 2005 20:16:21 :
Correction Affichage pour FireFox (espace entre les menus en vertical)
24 juillet 2005 20:17:29 :
Désolé de ces mises a jour rapides... j'avais oublié de modifier la source :(
25 juillet 2005 15:23:52 :
Ajout d'une fonction AddTitre, et de variables dans l'objet pour les couleurs, merci coucou747 ;) Ajout de timer activable/desactivable pour masquer les menus en mode horizontal

Commentaires et avis

signaler à un administrateur
Commentaire de la_pin le 24/07/2005 14:44:11

Vu le nombre de menu qu'il y a sur ce site, si tu veux vraiment sortir un menu qui se différencie des autres, tu devrais soigner au moins le design car ton menu est vraiment moche !
Tu dis que tu l'as fait à la va-vite, mais le but de ce site n'est pas de présenter des sources faites le plus vite possible mais des codes finis et aboutis...

signaler à un administrateur
Commentaire de Marmotte86 le 24/07/2005 20:07:37

j'avais deja dit que c'etait moche...
normalement, c'est mieux, j'ai modifié les couleurs

signaler à un administrateur
Commentaire de coucou747 le 25/07/2005 01:35:16

la_pin, calme toi, c'est l'un des rare menu OO, il n'aporte pas grand chose du coté des fonctionalitée, mais il est bien programmé...

ta class n'a que deux méthodes, c'est pas super super, théoriquement, un objet a plusieurs entrées et plusieurs sorties... (Un objet pour un menu, je dois dire que même si ça n'a qu'une sortie, c'est pratique...)
tu pourrais faire une méthode pour accèder à tes couleurs, une autre pour les deffinir, une méthode add_titre, plutot que de passer -1 comme oparamètre, tu pourrais du coup vraiment utiliser this.nombre, de sorte à suprimer le paramètre 1 de ta fonction add...
enfin voila, tu n'exploites pas assez la technologie objet, tu pourrais facilement faire un menu multi étages, vraiment paramétrable, et transparent...

signaler à un administrateur
Commentaire de Marmotte86 le 25/07/2005 12:14:16

Salut coucou747

Merci pour tous ces conseils, je vais essayer de les suivre... mais je debute en POO, donc je n'ai pas encore les bons reflexes :(

signaler à un administrateur
Commentaire de Marmotte86 le 25/07/2005 15:29:56

Voila, j'ai modifié un peu en tenant compte de tes conseils, par contre, je ne vois pas comment supprimer le paramètre 1 de ma fonction AddMenu... on peut evidemment utiliser this.Nombre quand on créé le menu, mais si on veut le modifier après (ajouter un élément par rapport à un formulaire par exemple), il faut bien pouvoir dire dans quel menu on veut ajouter cet élément... ou alors, je n'ai pas compris ce que tu voulais dire.

Pour les couleurs, j'ai ajouté des variables dans l'objet liste().

pour faire un menu avec plusieurs niveaux de sous menus, je ne voit pas comment faire (a part recommencer completement mes fonctions Add et Aff... donc presue tout)

signaler à un administrateur
Commentaire de coucou747 le 25/07/2005 16:51:22

bah t'as qu'a ajouter une méthode addMenuBetween...

en fait, pour faire plusieurs sous menus, effectivement, il faut tout refaire, mais c'est le prix à payer pour que ça soit vraiment paramètrable...

signaler à un administrateur
Commentaire de Marmotte86 le 25/07/2005 20:44:25

OK, je vais essayer...
Au boulot !

signaler à un administrateur
Commentaire de Marmotte86 le 27/07/2005 18:14:07

Voici l'adresse du nouveau menu... j'espere que j'ai bien suivi tes conseils :)
http://www.javascriptfr.com/code.aspx?ID=32927

signaler à un administrateur
Commentaire de homelaet le 28/09/2005 14:24:34

moi c'est ce que je cherchais et que je ne trouvais pas alors merci marmotte

signaler à un administrateur
Commentaire de homelaet le 29/09/2005 12:30:44

pfff moi j'y comprend rien :( je suis vraiment nule en java :( quelqu'un peut me dire comment faire mes liens ? pourquoi le tableau n'apparait plus dès que je change une valeur ? et ca veut dire koi : _self

enfin la différence entre url et cible

je suis vraiment pas doué moi

signaler à un administrateur
Commentaire de homelaet le 29/09/2005 15:14:11

non c'est bon pas besoin de répondre : auto réponse :) :
j'ai trouvé plus facil sur un autre site et ca marche alors je me prend pas la tete mais bon le tien il es plus joli que celui que j'ai trouvé

Bonne journée

signaler à un administrateur
Commentaire de uswill le 14/01/2006 18:50:58

slt moi je n'arrive pas à inserrer cet code dans ma page HTML afin d'avoir des sous menu vertical.je veux que quelqu'un m'explique comment y proceder.j'ose croire que ma préocupation trouvera une suite favorable

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Menu vertical et horizontal avec ouverture/fermeture d'un clic [ par neo_tsubasa ] Bonjour, Je suis tr&#233;s debutant en javascript et je voudrais faire un menu horizontal fixe qui lorsque l'on clique sur une de ces categories ouvr menu déroulant vertical [ par rduvrac ] J'ai r&#233;cup&#233;r&#233; ce script mais il ne fonctionne pas. J'aimerai bien car il est simple &#224; mettre en place et &#224; actualiser sinon. créer un menu horizontal sur 2 lignes [ par zephou92 ] je cherche une aide pour créer un menu horizontal sur 2 lignes en javascript (pas de php si c'est possible). merci vincentzephou92 Menu deroulant vertical [ par leo7511 ] Bjr,J'espère être sur le bon thème.J'ai essayé le menu déroulant vertical en copiant le code sur le bloc note pour avoir le fichier "Menu.js" et ajout Menu vertical particulier [ par GanJasTeR ] Bonjour &#224; tous.Voila je suis en train de r&#233;aliser mon portfolio et je bute sur un petit menu que j'ai dessin&#233; mais que je n'aarive pas Menu deroulant horizontal [ par flow92220 ] J'ai donc un menu d&#233;roulant qui deroule les differents onglets quand la souris passe dessus.Mais, mon probleme c'est que le menu ne se "r&#233;-e Générer un menu vertical à partir d'une image [ par hugo37 ] Bonjour &#224; tous, j'ai un petit probl&#232;me, en fait les scripts permettant d'ins&#233;rer un menu d&#233;roulant ect... sont tr&#232;s bien sur menu dynamique horizontal, problème avec le onload [ par metis15 ] Bonsoir,Le menu dyn. horizontal..;http://www.javascriptfr.com/code.aspx?id=21045ne fontionne pas si je laisse le pr&#233;chargement d'image...&lt;body Chargement de script [ par Straw ] Bonjour  à tous, Je suis en train de concevoir ce site-ci Il possède un menu déroulant horizontal, c'est une suite de &lt;li&gt; et un script ja demande d'aide sur menu dynamique vertical [ par christmac ] Voila je doit inclure pour un site un petit menu dynamique avec des sous menu en dessous, jusque la j'ai trouver plein de modele qui me va. Mais ou ce


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.