var lis = menuObj.getElementsByTagName('A');
for(var no=0;no<lis.length;no++){
if(!showSubOnMouseOver)
lis[no].onmouseover = stopAutoHide;
lis[no].onmouseout = initAutoHide;
lis[no].onmousemove = stopAutoHide;
}
Crea un insieme di tutti gli elementi A del menuObj.Per tutti gli elementi di questo insieme, se non è vero "showSubOnMouseOver", al mouseover sull'elemento esegui stopAutoHide; al mouseout dall'elemento esegui initAutoHide; al mousemove sull'elemento esegui stopAutoHide;
Non so quali siano queste funzioni. Che faccio, me le analizzo o vado avanti?
Provo ad andare avanti...
for(var no=0;no<mainMenuItemArray.length;no++){
var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];
if(sub){
mainMenuItemArray[no].id = 'mainMenuItem' + (no+1);
var div = document.createElement('DIV');
div.className='dhtmlgoodies_subMenu';
document.body.appendChild(div);
div.appendChild(sub);
if(slideDirection=='right'){
div.style.left = getLeftPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetWidth + xOffsetSubMenu + 'px';
}
else{
div.style.left = getLeftPos(mainMenuItemArray[no]) + xOffsetSubMenu + 'px';
}
div.style.top = getTopPos(mainMenuItemArray[no]) + 'px';
div.id = 'subMenuDiv' + (no+1);
sub.id = 'submenuUl' + (no+1);
sub.style.position = 'relative';
if(navigator.userAgent.indexOf('Opera')>=0){
submenuObjArray[no+1] = new Array();
submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
submenuObjArray[no+1]['divObj'] = div;
submenuObjArray[no+1]['ulObj'] = sub;
submenuObjArray[no+1]['width'] = sub.offsetWidth;
submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
}
sub.style.left = 1 - sub.offsetWidth + 'px';
if(document.all)
div.style.width = '1px';
if(navigator.userAgent.indexOf('Opera')<0){
submenuObjArray[no+1] = new Array();
submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
submenuObjArray[no+1]['divObj'] = div;
submenuObjArray[no+1]['ulObj'] = sub;
submenuObjArray[no+1]['width'] = sub.offsetWidth;
submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
if(fixedSubMenuWidth)
submenuObjArray[no+1]['width'] = fixedSubMenuWidth;
}
if(!document.all)
div.style.width = '1px';
}
}
Questa è colossale: la devo spezzettare un po' altrimenti mi impiccio...
Esegue qualcosa per tutti i mainMenuItem, che erano stati messi tutti nell'array mainMenuItemArray.
Vediamo cosa esegue...
var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];
chiama sub il primo elemento UL contenuto in un mainMenuItem.Cioè questo:
<li><a href="#">Siti</a>
<ul>
<li><a href="#">Grafica</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">Javascript</a></li>
<li><a href="#">Web Design</a></li>
</ul>
</li>
Quindi se esiste questo sub...
mainMenuItemArray[no].id = 'mainMenuItem' + (no+1);
var div = document.createElement('DIV');
div.className='dhtmlgoodies_subMenu';
document.body.appendChild(div);
div.appendChild(sub);
ridenomina il corrispettivo mainMenuItem dell'Array in "mainMenuItem..." + il suo numero progressivo nell'Array;
crea un nuovo elemento DIV chiamandolo div;
attribuisce a questo elemento la classe "dhtmlgoodies_subMenu";
appende al documento questo div;
Mi sfugge il senso globale di tutte queste cose...
Ecco: il senso di questa è che per ogni mainMenuItem si va a vedere se contengono un sottoelenco: nel caso in cui lo contengano si ridenomina il corrispettivo mainMenuItem e si crea un DIV che viene aggiunto al documento.
Sì, questa ha effettivamente senso!
Ecco: questa analizza se ogni voce del menu principale ha o no dei sottomenu, nel qual caso prepara i sottomenu creando i DIV corrispondenti! Geniale, sì!
Nessun commento:
Posta un commento