Visualizzazione dei risultati da 1 a 7 su 7

Discussione: A:hover su pulsanti

  1. #1
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396

    A:hover su pulsanti

    Ciao a tutti, premetto che so poco e niente di javascript.. Nella rete ho trovato uno script in java che permette di cambiare skin al pulsante una volta che ci si passa sopra con il mouse, Ecco come dovrebbe essere:

    Tasto non selezionato



    Tasto selezionato



    Codice nella pagina default.asp

    Codice PHP:
    <script type="text/javascript" src="common.js"></script>
    <body onload="add_handlers('nav_button');">
    <dt class="titolo">Notebook Dell</dt>
    <dd class="immagine">[img]immagini/portatile.png[/img]</dd>
    <dd class="descrizione">[url="#"]Notebook Dell processore Intel Core Duo 2, hard disk 250GB[/url]</dd>
    <dd class="prezzo">899€</dd>
    <dd class="pulsante">[url="#"][img]immagini/nav_button.png[/img][/url]</dd>
    </dl>
    <dt class="titolo">Sony Bravia 50''</dt>
    <dd class="immagine">[img]immagini/plasma.png[/img]</dd>
    <dd class="descrizione">[url="#"]Notebook Dell processore Intel Core Duo 2, hard disk 250GB[/url]</dd>
    <dd class="prezzo">1100€</dd>
    <dd class="pulsante">[url="#"][img]immagini/nav_button.png[/img][/url]</dd>
    </dl> 
    Codice pagina common.js

    Codice PHP:
    var images_dir 'immagini/';
    var 
    over_prepend '_sel.png';
    var 
    img_prepend '_img';

    function 
    add_handlers() {
        var 
    iargs,dlinkimgidto_preloadfunction_string;
        
    document;
        
    args add_handlers.arguments;
        
    to_preload '';
        
    function_string '';
        if(
    d.images) {
            for(
    0<args.lengthi++) {
                
    id args[i];
                
    elem d.getElementById(id)
                eval(
    "elem.onmouseover = function() { MM_swapImage(\'"+id+img_prepend+"\',\'\',\'"+images_dir+id+over_prepend+"\',1); } ");
                
    d.getElementById(id).onmouseout = function() { MM_swapImgRestore(); }; 
                
    to_preload += "'"+images_dir+id+over_prepend+"',";
            }
        }
        
    to_preload to_preload.substr(0,(to_preload.length-1));
        
    exec("MM_preloadImages("+to_preload+");");
    }

    function 
    MM_preloadImages() { //v3.0
      
    var d=document; if(d.images){ if(!d.MM_pd.MM_p=new Array();
        var 
    i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0i<a.lengthi++)
        if (
    a[i].indexOf("#")!=0){ d.MM_p[j]=new Imaged.MM_p[j++].src=a[i]; }}
    }



    function 
    MM_swapImgRestore() { //v3.0
      
    var i,x,a=document.MM_sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }



    function 
    MM_findObj(nd) { //v4.01
      
    var p,i,x;  if(!dd=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        
    d=parent.frames[n.substring(p+1)].documentn=n.substring(0,p);}
      if(!(
    x=d[n])&&d.allx=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(
    i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!
    && d.getElementByIdx=d.getElementById(n); return x;
    }

    function 
    MM_swapImage() { //v3.0
      
    var i,j=0,x,a=MM_swapImage.argumentsdocument.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((
    x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrcx.oSrc=x.srcx.src=a[i+2];} 

    Problemi:

    Su I.E 7 non visualizzo i tasti selezionati, al contrario con Firefox ne visualizzo solo uno di selezionato (il primo). Se elimino una delle due "<dd class="pulsante.....</dd> riesco a visualizzarne una su Ie e una su Firefox. Sono giunto ad una conclusione, credo dipenda dal nome del pulsante nav_button.png che si ripete e quindi si crea una specie di conflitto. Il punto è che per questa pagina uso il linguaggio di programmazione ASP e le div contenenti i pulsanti verranno ripetute per "x" volte per quanti sono i prodotti visualizzati nella default.asp. Come posso fare per visuallizare i pulsanti selezionati senza problemi ogni volta che si passa il cursore sopra indipendemente dal numero di pulsanti presenti nella stessa pagina? Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    8
    -

  3. #3
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    ...........Che risposta ermetica....... :rollo:

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    8
    no scusa è ke nn ho capito bene cosa stai cercando di fare...
    avevo capito ke dovevi semplicemente cambiare una img in un'altra al mouse over
    tipo
    [img]pesce.jpg[/img]
    ma mi pare di capire che tu vuoi una soluzione in javascript non invasivo.

  5. #5
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Figurati, grazie per la risposta Che sia invasivo o no non mi interessa, l'importante è che una volta ripetuta per "x" volte l'immagine nav_button.png, al passare del mouse si riesca a visualizzare l'immagine nav_button_sel.png. Al momento se inserisco due stringhe <src=... con la stessa immagine, l'a:hover non mi funge...

  6. #6
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Mitico! funziona Grazie mille Egm

    PS. io l'ho inserito in questo modo:
    Codice PHP:
    [img]immagini/nav_button.png[/img]</a></dd
    senza mettere nessuna dichiarazione di script java, è giusto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    8
    si è giusto, anke se il codice js è nn è separato dall'html è comuque + conciso della soluzione ke avevi provato prima!!!

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.