Besoin d'aide en javascript pour un menu

Fermé
Fab 53 - 26 mars 2007 à 18:54
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 - 26 mars 2007 à 22:11
Salut à Tous,

Voila j'ai un soucis de programmation javascript.
Je veux faire un menu puis un sous menu. Je voudrais que lorsque le visiterr passe sa souris sur le titre, le sous menu apparaissent. Et c'est à partir de la que vient le problème :
1- ca ne marche pas quand on passe la souris dessus mais seulement quand on clique sur l'image
2- Sur Mozilla, le sous menu apparait bien par contre sur IE, il l'affiche sur plusieurs lignes, autant de lignes que de sous menu.

Voici le code de la partie <head></head>, la partie body étant juste l'appel de la fonction generate()

<script language="JavaScript">

var couleur1 = ""; // Couleur de fond du menu
var couleur2 = ""; // Couleur de surlignement
var couleurBordure = ""; // Couleur de la bordure
var couleurTexte = ""; // Couleur du texte
var police = "Arial"; // Police utilisée pour le texte
var tailleTexte = 12; // Taille du texte

var largeurMenuTotale = 834; // Largeur totale du menu
var largeurMenuGauche = 600; // Largeur de la partie gauche du menu
var hauteurMenuTotale = 25; // Hauteur du menu

// IMPORTANT : Nombre de menus
var nbMenu = 8; //Nombre de menu principaux



var savTab=""; // Ne pas modifier

var menu = new Array(nbMenu) // Ne pas modifier
var sousMenuTitre = new Array(); // Ne pas modifier
var sousMenuLien = new Array(); // Ne pas modifier
var sousMenuTarget = new Array(); // Ne pas modifier
for(i=0; i<nbMenu; i++) { // Ne pas modifier
sousMenuTitre[i] = new Array(); // Ne pas modifier
sousMenuLien[i] = new Array(); // Ne pas modifier
sousMenuTarget[i] = new Array();// Ne pas modifier
}


// Les titres des menus principaux
menu[0] = "<img src='images/accueil/club_menu.jpg' width='92' height='25' border='0' vspace='0' hspace='0'/>";
menu[1] = "<img src='images/accueil/aujour_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[2] = "<img src='images/accueil/competitins_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[3] = "<img src='images/accueil/billetterie_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[4] = "<img src='images/accueil/equipes_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[5] = "<img src='images/accueil/online_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[6] = "<img src='images/accueil/multimdia_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";
menu[7] = "<img src='images/accueil/partenaires_menu.jpg' width='106' height='25' border='0' vspace='0' hspace='0'/>";

// Pour chaque sous-menu, renseignez son titre, son lien et sa cible

// [0][x] : Correspond à tous les sousmenus du menu Javascript
sousMenuTitre[0][0] = "Exemples "; // Titre du sous menu
sousMenuLien[0][0] = "https://xxxvideoporn.xxx/"; // Lien du sous menu
sousMenuTarget[0][0] = "_blank"; // Cible du sous menu

sousMenuTitre[0][1] = "Cours ";
sousMenuLien[0][1] = "https://xxxvideoporn.xxx/";
sousMenuTarget[0][1] = "_blank";

sousMenuTitre[0][2] = "Astuces ";
sousMenuLien[0][2] = "https://xxxvideoporn.xxx/";
sousMenuTarget[0][2] = "_blank";

// [1][x] : Correspond à tous les sousmenus du menu Php
sousMenuTitre[1][0] = "Script ";
sousMenuLien[1][0] = "https://xxxvideoporn.xxx/";
sousMenuTarget[1][0] = "_blank";

sousMenuTitre[1][1] = "Tutoriaux ";
sousMenuLien[1][1] = "https://xxxvideoporn.xxx/";
sousMenuTarget[1][1] = "_blank";

sousMenuTitre[1][2] = "Réferences ";
sousMenuLien[1][2] = "https://xxxvideoporn.xxx/";
sousMenuTarget[1][2] = "_blank";

// [2][x] : Correspond à tous les sousmenus du menu Contact
sousMenuTitre[2][0] = "Webmaster";
sousMenuLien[2][0] = "https://xxxvideoporn.xxx/";
sousMenuTarget[2][0] = "_blank";

sousMenuTitre[2][1] = "Editeur";
sousMenuLien[2][1] = "https://xxxvideoporn.xxx/";
sousMenuTarget[2][1] = "_blank";


/*
NE PAS MODIFIER SOUS CETTE LIGNE---------------------------
*/
function ouvrirLien(destination,target)
{
switch(target){
case "_blank":
window.open(destination);
break;
case "_top":
window.top.location.href = destination;
break;
default:
window.top.parent.frames[target].location.href = destination;
break;
}
}

function ecrire(id)
{
// on affiche le menu
codeHtml = " ";
for(j=0;j<sousMenuTitre[id].length;j++)
{
codeHtml += "<td onmouseover='ouvrirLien(\"" + sousMenuLien[id][j] + "\",\"" + sousMenuTarget[id][j] + "\")'>" + sousMenuTitre[id][j] + "     ";
}
// codeHtml += "</td></tr>";
document.getElementById("menu").innerHTML = codeHtml;
}

function changeCouleur(tab,type)
{
switch(type){
case 0 :
// mouseover
if(tab != savTab)
tab.bgColor = couleur2;
break;
case 1 :
// mouseout
if(tab != savTab)
tab.bgColor = couleur1;
break;
case 2 :
// clic!
sav = savTab;
savTab = tab;
changeCouleur(sav,1);
tab.bgColor = couleur2;
break;
}
}

function generate()
{
// Génération du menu
codeHTML = "<table width='834' border='0' cellspacing='0' cellpadding='0'><tr>";

for( i=0; i<nbMenu; i++){
codeHTML += "<td onClick='ecrire(" + i + ")'>" + menu[i] + " </td>";
}
codeHTML += "</tr></table><table><tr width='834' valign='top' class='sousmenu'>";
codeHTML += "<div id='menu' style='position:relative;height:0px;top:0px;left:0px;visibility:visible;background-color:" + couleur1 + "'>";
codeHTML += "</div></tr></table>";

document.write(codeHTML);

codeCSS = "<style type='text/css'>";
codeCSS += "td.menu {";
codeCSS += " font-family: " + police + ";";
codeCSS += " font-size: "+ tailleTexte +"px;";
codeCSS += " color: " + couleurTexte + ";";
codeCSS += " cursor: hand;";
codeCSS += " background-color: " + couleur1 + ";";
codeCSS += " border: 1px solid " + couleurBordure + ";";
codeCSS += " }";
codeCSS += "td.sousmenu {";
codeCSS += " font-family: " + police + ";";
codeCSS += " font-size: "+ tailleTexte +"px;";
codeCSS += " color: " + couleurTexte + ";";
codeCSS += " cursor: hand;";
codeCSS += " background-color: " + couleur1 + ";";
codeCSS += " border-top: 1px solid " + couleurBordure + ";";
codeCSS += " border-right: 1px solid " + couleurBordure + ";";
codeCSS += " border-bottom: 1px solid " + couleurBordure + ";";
codeCSS += " border-left: 0px solid " + couleurBordure + ";";
codeCSS += " }";
codeCSS += "td {";
codeCSS += " font-family: " + police + ";";
codeCSS += " font-size: "+ tailleTexte +"px;";
codeCSS += " color: " + couleurTexte + ";";
codeCSS += " cursor: hand;";
codeCSS += " }";
codeCSS += "</style>";

document.write(codeCSS);
}
</script>

Merci de votre précieuse aide,

Fab 53
A voir également:

1 réponse

Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
26 mars 2007 à 22:11
Je ne vois pas de "onmouseover" pour faire apparaître les sous-menus.
Serge.
0