J'ai télécharger le script d'un menu du genre (j'ai pas le temps d'en créer un moi-même):
dossier (pere)
**fichier (fils)
**fichier (fils)
dossier (pere)
Le script fonctionne très bien, mais je ne sais pas du tout comment modifier la police, la taille, en gros la mise en forme. J'ai tout essayer.
Voici le fichier menu.js :
// JavaScript Document
// Menu de profondeur variable
var fichier = 0;
var dossier = 1;
var nb = 0;
var Menu = new Array();
// Construction du menu, attention à l'ordre.
// 4 arguments :
// - le type : dossier ou fichier
// - la profondeur
// - le texte
// - le lien
Ajouter(fichier, 0, "Biographie", "biographie.php");
Ajouter(dossier, 0, "Discographie", "#");
Ajouter(fichier, 1, "1ere Récolte", "discographie.php#premiererecolte");
Ajouter(fichier, 1, "Résistances", "discographie.php#resistances");
Ajouter(fichier, 1, "Tout c'qu'on a", "discographie.php#tkona");
Ajouter(fichier, 1, "Sinse part en live", "discographie.php#sinsepartenlive");
Ajouter(fichier, 1, "Debout les yeux ouverts", "discographie.php#debout");
Ajouter(fichier, 0, "Paroles", "erreurs/err404.php");
Ajouter(dossier, 0, "Photos", "#");
Ajouter(fichier, 1, "Album", "album/index.php");
Ajouter(fichier, 1, "Concerts", "http://sinse.freezee.org/album/disp_album.php?id_album=3&stat=ok");
Ajouter(fichier, 1, "Le groupe", "http://sinse.freezee.org/album/disp_serie.php?id_album=2&stat=ok");
Ajouter(fichier, 0, "Liens", "liens.php");
// L'objet Element
function Element(type, profondeur, pere, texte, lien)
{
this.type = type;
this.profondeur = profondeur;
this.pere = pere;
this.ouvert = false;
this.texte = texte;
this.lien = lien;
}
// Méthode de vérification de la présence d'un élément
// un élément est present si son pere est ouvert ou est 0
function Present(n)
{
while (Menu[n].pere != 0)
{
n = Menu[n].pere;
if (!(Menu[n].ouvert)) {return false;}
}
return true;
}
Element.prototype.Present = Present;
// Méthode de modification de l'état d'un élément
function Changer()
{
if (this.ouvert)
{this.ouvert = false;} // si ouvert, on ferme
else
{ // sinon, on ferme tous les éléments de la même branche et on l'ouvre
var i = this.pere + 1;
while (i <= nb && Menu[i].profondeur >= this.profondeur)
{
Menu[i].ouvert = false;
i++;
}
this.ouvert = true;
}
AffMenu();
}
Element.prototype.Changer = Changer;
// Méthode d'écriture d'un élément
function Ecrire(n)
{
var chaine = "";
if (!(this.Present(n))) return chaine ; // l'élément ne doit pas être affiché
chaine += "<tr><td style='position:relative; left:" + 10 * this.profondeur + "px'><li>"
//for (var i = 0; i < this.profondeur; i++) {chaine += " ";} // petit décalage
if (this.type == fichier)
{chaine += "<a href='" + this.lien + "' onMouseOver=\"window.status='Ouvrir " + this.texte + "'; return true;\" onMouseOut=\"window.status=''; return true;\">" + this.texte + "</a>";}
else
{chaine += "<a href='#' OnMouseDown='Menu[" + n + "].Changer();' target='_self' onMouseOver=\"window.status='" +((this.ouvert) ? "Fermer " : "Etendre ") + this.texte +"'; return true;\" onMouseOut=\"window.status=''; return true;\">" + this.texte + "</a>"}
return chaine + "</li></td></tr>";
}
Element.prototype.Ecrire = Ecrire;
// Fonction d'ajout d'un élément au menu
function Ajouter(type, profondeur, texte, lien)
{
nb++;
var pere = nb - 1;
while (pere != 0 && Menu[pere].profondeur >= profondeur) {pere--;}
Menu[nb] = new Element(type, profondeur, pere, texte, lien);
}
// Création de l'objet menu dans la page
document.writeln('<div id="menu"></div>');
// Affichage du menu dans l'état actuel
function AffMenu()
{
var chaine = "<table>";
for (var i = 1; i < Menu.length; i++)
{
chaine += Menu[i].Ecrire(i);
}
chaine += "</table>";
document.getElementById('menu').innerHTML = chaine;
}
Pour voir ce que cela donne voici la seule page de mon site où ce menu est affiché: http://sinse.freezee.orgMerci d'avance pour votre aide
Mithrandir