è in qualche modo indipendente dal codice Css necessario per
la stilizzazione dinamica del menu; tuttavia è necessario
stabilire delle dimensioni ed un carattere standard, onde
poter stabilire misure e distanze per l'accorpamento dei vari
elementi Html del menu.
La classe ID #principale si limita a stilizzare i link del
menu principale, ovvero le voci di menu al cui passaggio del
mouse si attiva il relativo sottomenu.
La classe ID #sottomenu, invece, è necessaria per il
posizionamento assoluto dei sottomenu e per impostarli
nascosti al caricamento, quindi, le istruzioni veramente
necessarie per compiere tali operazioni sono solo
#sottomenu {
position: Absolute;
visibility: Hidden;
width: 120px;
padding: 1px;
border: Solid 1px #000000;
}
mentre il resto è del tutto
personalizzabile ed ampliabile.
Dinamizzazione Javascript: il file menu.js
Come già accennato nelle prime righe di questo Articolo,
andiamo ad analizzare nello specifico le istruzioni necessarie
per il funzionamento del menu con Microsoft Internet Explorer;
in seguito analizzeremo la "traduzione" valida per Netscape
Navigator.
Il codice completo e commentato è riportato di seguito:
var quanti = 3; // Imposta il numero di menu e di sottomenu
var i;
// Il parametro "conta" serve per indicizzare i menu principali
function Apri(conta)
{
if(document.all) // Identifichiamo
// Microsoft Internet Explorer
{
var elemento = event.toElement;
var mostra = document.all.sottomenu[conta];
mostra.style.visibility = "visible";
mostra.style.top = 15;
for (i=0; i<quanti; i++)
{
aperto = document.all.sottomenu[i];
menu = document.all.principale[i];
if (i != conta)
{
aperto.style.visibility = "hidden";
}
}
}
}
// Con la stessa filosofia impostiamo lo stile
//"nascosto" sul sottomenu aperto
function Chiudi()
{
for (i=0; i<quanti; i++)
{
if (document.all)
{
document.all.sottomenu[i].style.visibility = "hidden";
menu = document.all.principale[i];
}
}
}
I commenti al codice appena presentato
lasciano poco spazio ad ulteriori commenti, le routine sono
semplici e formattate in maniera chiara e leggibile, ma
funziona solo con Microsoft Internet Explorer; come predetto,
nel prossimo paragrafo integreremo le routine appena
presentate con le funzioni valide per Netscape Navigator.
"Traduzione" dello script valida per Netscape Navigator
La routine di seguito presentata va integrata nella funzione
Apri(), utile per l'apertura del menu
if (document.layers)
{
mostra = document.layers[x+1];
mostra.visibility = "show";
mostra.top= 15;
for (i=1; i<=quanti; i++)
{
aperto = document.layers[i];
if (i != (x + 1))
{
aperto.visibility = "hide";
}
}
}
Di seguito, invece, presento la routine di chiusura del
menu valida per Netscape Navigator
if (document.layers)
{
document.layers[i+1].visibility = "hide";
}