Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con il rollover

    Salve, sto creando un sito per un mio cliente ma ho un problema per effettuare un effetto grafico nella barra dei menù.

    Il problema è questo: ogni singola voce di menù è inserita in una cella di una tabella che ha uno sfondo predefinito. La voce di menù è un immagine su sfondo trasparente. Quando passo sopra con il mouse si deve modificare sia lo sfondo della cella che l'immagine contenuta.

    Per quello che riguarda lo sfondo della cella mi funziona, ma non mi cambia l'immagine in primo piano.

    Ultima precisazione prima del codice: le immagini in primo piano sono denominate nel seguente modo:

    home_unp.gif
    home_pre.gif
    chisiamo_unp.gif
    chisiamo_pre.gif
    ...

    Ecco il codice che ho creato (e che non funziona) inserito in <head>:
    codice:
    <script language="javascript">
      <!--
        function fncRollIn(strIndex) {
          strImg = new String();
          document.getElementById('menu' + strIndex).background = '/images/sfondi/sfondo_pul_pre.gif';
          strImg = document.getElementById('img' + strIndex).src;
          strImg.replace("unp", "pre");
          document.getElementById('img' + strIndex).src = strImg;
        }
        function fncRollOut(strIndex) {
          strImg = new String();
          document.getElementById('menu' + strIndex).background = '/images/sfondi/sfondo_pul_unp.gif';
          strImg = document.getElementById('img' + strIndex).src;
          strImg.replace("pre", "unp");
          document.getElementById('img' + strIndex).src = strImg;
        }
      -->
    </script>
    In seguito ecco la tabella che deve subire gli effetti DHTML:
    codice:
    <table background="/images/sfondi/sfondo_menu.jpg" border="0" cellpadding="0" cellspacing="2" height="30" width="<% = (arrScreen(0) - 79) %>">
      <tr>
        <td align="center" background="/images/sfondi/sfondo_pul_unp.gif" id="menu1" nowrap width="135">
          <a href="/index.asp" onmouseout="fncRollOut('1')" onmouseover="fncRollIn('1')">
            [img]/images/pulsanti/home_unp.gif[/img]
          </a>
        </td>
        <td align="center" background="/images/sfondi/sfondo_pul_unp.gif" id="menu2" nowrap width="135">
          <a href="/index.asp" onmouseout="fncRollOut('2')" onmouseover="fncRollIn('2')">
            [img]/images/pulsanti/chisiamo_unp.gif[/img]
          </a>
        </td>
        ...
      </tr>
    </table>
    Non ho fatto il preload delle immagini, ma sono tutte estremamente leggere e se non è indispensabile per il funzionamento può non essere fatto.

    Grazie a chiunque voglia aiutarmi.

    Ciao ciao

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ciao
    le <img> hanno solo il name, mentre cerchi di farvi riferimento tramite document.getElementById()
    devi specificare per esse un id

  3. #3
    mi spiace ma non hai individuato l'errore:

    ho provato a sostituire la voce name=... in id=... nelle img, ma il risultato non cambia, non carica le immagini.

    Ho anche provato a lasciare name=... ed usare document.getElementsByName(...) ma mi risponde con l'errore: strImg è nullo o non è un riferimento valido ad un oggetto.

    Forse un errore nella replace?

    Cmq grazie dell'aiuto

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si' c'e' anche un errore nel replace,
    non assegni il risultato dell' operazione

    strImg=strImg.replace("unp", "pre");

    ciao

  5. #5
    In effetti adesso funziona tutto come mi aspettavo.

    Ricordami che ti devo un favore


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.