Visualizzazione dei risultati da 1 a 4 su 4

Discussione: codice per il menù

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86

    codice per il menù

    Ciao a tutti o scaricato da Internet il seguente codice javascript per il menù espandibile ma non capisco bene cosa fà e poichè non sono molto pratica con javascript qualcuno saprebbe spiegarmelo:
    sfHover = function() {
    var sfEls = document.getElementById("nav").getElementsByTagNam e("LI");
    for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
    this.className+=" sfhover";
    }
    sfEls[i].onmouseout=function() {
    this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    }
    }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);


    Inoltre ho collegato attraverso questa istuzione <script type="text/javascript" src="menù.js"></script>
    la mia pagina web al codice javascript e se non metto questa istruzione con IE il menù non mi funziona mentre con FF si posso evitare di metterla?

  2. #2
    Ciao a tutti o scaricato da Internet
    e l'h?
    a parte gli scherzi, lo script in questione emula l'effetto hover agli elementi "li" del menu contenuto nell'elemento con id "nav". Ma andiamo per ordine:
    codice:
    sfHover = function() {
    var sfEls = document.getElementById("nav").getElementsByTagName("LI");
    // Ha recuperato la lista degli elementi del menu, contenuti nel tag con id="nav"
    for (var i=0; i<sfEls.length; i++) { // per ogni elemento della lista
    // associa al passaggio del mouse sull'elemento la classe originale + suffisso sfhover
    sfEls[i].onmouseover=function() {this.className+=" sfhover";}
    // ripristina la classe di stile originale quando il mouse si sposta dall'elemento del menu
    sfEls[i].onmouseout=function() {
    this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}
    }
    }
    // fa partire lo script in automatico al caricamento della pagina
    if (window.attachEvent) window.attachEvent("onload", sfHover);
    per quanto riguarda l'istruzione <script type="text/javascript" src="menù.js"></script> devi metterla, altrimenti lo script non può funzionare...

    cmq tutto questo lo puoi ovviare con l'uso della pseudo classe :hover nei css, il risultato e lo stesso, se non migliore

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    86

    risposta

    Ciao dvjack scusa se ti rispondo così in ritardo non ho capito come posso evitare di mettere la scritta <script type="text/javascript" src="menù.js"></script> nel codice.Posso eliminarla?cosa devo mettere nel foglio di stile visto che lo script si trova in un file apparte.

  4. #4
    facendo un pò di mente locale...
    allora lo script fungeva da effetto :hover sugli elementi[*] del menu...
    codice:
    // esempio menu
    <ul>
    <li class="voceMenu">voce menu 1
    <li class="voceMenu">Voce menu 2
    <ul>
    in teoria, trammite css tu potresti fare una cosa cosi:
    codice:
    li.voceMenu{ /*normale*/ }
    li.voceMenu:hover{/*quando il mouse è sopra*/ }
    e nn mettere <script type="text/javascript" src="menù.js"></script>

    Questo xò solo in teoria, perchè con IE nn funziona,perchè accetta :hover solo con il tag <a>,
    quindi tu dovresti modificare il menu cosi:
    codice:
    <ul>[*]<a class="voceMenu">voce menu 1</a>[*]<a class="voceMenu">Voce menu 2</a>
    <ul>
    spero di essermi spiegato in maniera comprensibile


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.