Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89

    voce menu selezionata / classe diversa

    Ciao a tutti,

    ho un menu che si aggiorna dinamicamente senza ricaricare la pagina. Funziona correttamente, solo che ho l'esigenza di avere una voce del menu (la 3° ed ultima in questo caso) con colore di sfondo, rollover e testo diverso dalle altre voci. Si deve selezionare secondo secondo attributi css solo suoi, e deve ritornare al suo stato non selezionato quando vengono cliccate (selezionate) le altre vocidel menu. Sapreste aiutarmi?

    Codice PHP:
    <div id="menu3" class="menu">

    [
    url=""][/url]

    [
    url=""][/url]

    [
    url=""][/url]

    </
    div

    il javascript che mi seleziona gli elementi è questo:

    Codice PHP:
    function evidenzia(quale){
      var 
    lnks=document.getElementById('menu3').getElementsByTagName('a');
      for(var 
    k=0,l=lnks.length;k<l;k++){
        if(
    lnks[k]==qualelnks[k].className="evidenziato";
        else 
    lnks[k].className='menuItem';
      }


    il css (semplificato):

    Codice PHP:
    div.menu a.menuItem {
    color#fff;
    background-color:#000;
    }

    div.menu a.menuItem:hoverdiv.menu a.menuItemHighlight {
    color#000;
    background-color:#fff;
    }

    .
    evidenziato 
    color#000;
    background-color:#fff;


  2. #2
    scusa ma mi sembra ke il codice postato sia corretto...non capisco cosa c'è ke nn va
    Fabio Di Tommaso

    Consulente IT
    Webmaster
    Sviluppatore Microsoft SAP

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89
    Originariamente inviato da fdt80
    scusa ma mi sembra ke il codice postato sia corretto...non capisco cosa c'è ke nn va
    Il codice funziona, io però devo ampliarlo; dei 3 link che mi formano il menu, uno di essi deve avere una formattazione diversa (colore testo, colore sfondo, diverso rollover e diversa formattazione quando è attivo, cioè selezionato). Tutti e 3 però devono continuare a far parte dello stesso menu, cioé ne può essere selezioanto (stato attivo) uno solo alla volta.

    Mi sono spiegato?

  4. #4
    embè aggiungi codice di stile all'elemento 'evidenziato' nel css...
    Fabio Di Tommaso

    Consulente IT
    Webmaster
    Sviluppatore Microsoft SAP

  5. #5
    voglio dire aggiungi nella sezione 'evidenziato' del css le varie istruzioni: background-color ecc... dipende da quello ke t serve
    Fabio Di Tommaso

    Consulente IT
    Webmaster
    Sviluppatore Microsoft SAP

  6. #6

    Re: voce menu selezionata / classe diversa

    Un'idea:
    Codice PHP:
    <div id="menu3" class="menu">

    [
    url=""][/url]

    [
    url=""][/url]

    [
    url=""][/url]

    </
    div

    il javascript :

    Codice PHP:
    function evidenzia(quale){
      var 
    lnks=document.getElementById('menu3').getElementsByTagName('a');
      var 
    itemClass quale.className;
      var 
    eSt "B";
      if ( (
    itemClass == "evidenziato") || (itemClass == "menuItem") )  {
        
    eSt "";
      }
      for(var 
    k=0,l=lnks.length;k<l;k++){
        if(
    lnks[k]==quale
            
    lnks[k].className="evidenziato" eSt;
        else 
            
    lnks[k].className="menuItem" eSt;
      }

    Nel css, poi, dovrai fare le classi .evidenziatoB e .menuItemB

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89
    @homezappa

    quando clicco il link con class="menuItemB" a tutte le altre voci del menu viene associata la stessa classe "menuItemB".

  8. #8
    Avevo fatto un po' di errori di fretta.
    Dovrebbe andare, ora:
    codice:
    function evidenzia(quale){
      var lnks=document.getElementById('menu3').getElementsByTagName('a');
      var itemClass ;
      for(var k=0,l=lnks.length;k<l;k++){
        itemClass = lnks[k].className;
        if(lnks[k]==quale) {
            if ( (itemClass == "evidenziato") || (itemClass == "menuItem") )
                lnks[k].className="evidenziato" ;
            else
                lnks[k].className="evidenziatoB" ;
        }
        else {
            if ( (itemClass == "evidenziato") || (itemClass == "menuItem") )
                lnks[k].className="menuItem" ;
            else
                lnks[k].className="menuItemB" ;
        }
      }
    }
    Prova e fammi sapere
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89
    @homezappa

    yeaaaa! grazie mille homezappa... non so proprio come ringraziarti! ("dammi 100 Euro!" dirai tu. ).

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 © 2024 vBulletin Solutions, Inc. All rights reserved.