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

    [js] rollover con immagini precaricate

    Salve a tutti, vorrei fare un rollover di immagini, ma in modo che una volta che le immagini sono caricate al caricamento della pagina, il rollover avvenga in maniera praticamente immediata.
    Ho provato ad usare il codice del Fireworks che usa il precaricamento delle immagini, ma il problema rimane. Quando passo col mouse sul link, il rollover avviene dopo 1/2 secondi.
    E' una cosa fisiologica, e impossibile da eliminare, o ho sbagliato qualcosa io?
    ciao e grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    I vari editor (tipo FireWorks) mi lasciano molto perplesso (e comunque FW non lo conosco).

    Se vuoi un aiuto devi postare il codice che usi: in tal modo si puo` vedere se effettivamente viene fatto il preload e/o se ci sono errori.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Originariamente inviato da Mich_
    I vari editor (tipo FireWorks) mi lasciano molto perplesso (e comunque FW non lo conosco).

    Se vuoi un aiuto devi postare il codice che usi: in tal modo si puo` vedere se effettivamente viene fatto il preload e/o se ci sono errori.

    Ciao
    Michele
    Ecco il codice:
    codice:
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=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(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.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.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    
    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_preloadImages() { //v3.0
     var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
       var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
       if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    
    <body onLoad="MM_preloadImages('images/menu_hp_no.png','images/menu_hp_si.png','images/menu_prodotti_no.png', 'images/menu_prodotti_si.png', 'images/menu_servizi_no.png', 'images/menu_servizi_si.png', 'images/menu_dovesiamo_no.png', 'images/menu_dovesiamo_si.png', 'images/menu_contatti_no.png', 'images/menu_contatti_si.png', 'images/menu_factotum_no.png','images/menu_factotum_si.png');">
    
    [img]images/menu_prodotti_no.png[/img]

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il preload nel tuo codice avviene dopo il caricamento del resto della pagina.
    Per il resto ho grosse difficolta` a controllare il codice, che essendo di MacroMedia e` scritto in modo criptico (occorrerebbe trasformarlo in forma umana per interpretarlo ed eventualmente correggerlo), ma suppongo che sia corretto.

    Nel tuo codice non si vede il tag di chiusura della head e neppure il tag di chiusura dello script, ma suppongo che ci siano tra lo script e il <body...>

    Potresti inserire il preload nella head: in questo modo avresti un ritardo nel caricamento della pagina (che dipende da quanto pesano le immagini), ma poi non avresti ritardi nel caricamento delle immagini di rollover.

    Prova cosi`:
    codice:
    <head>
    ...
    <script ...>
    function MM_findObj(n, d) { //v4.01
    ....
    function MM_swapImage() { //v3.0
    ....
    function MM_swapImgRestore() { //v3.0
    ....
    function MM_preloadImages() { //v3.0
    ....
    MM_preloadImages('images/menu_hp_no.png',....,'images/menu_factotum_si.png');
    </script>
    </head>
    
    <body>
    ...
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Originariamente inviato da Mich_
    Il preload nel tuo codice avviene dopo il caricamento del resto della pagina.
    Per il resto ho grosse difficolta` a controllare il codice, che essendo di MacroMedia e` scritto in modo criptico (occorrerebbe trasformarlo in forma umana per interpretarlo ed eventualmente correggerlo), ma suppongo che sia corretto.

    Nel tuo codice non si vede il tag di chiusura della head e neppure il tag di chiusura dello script, ma suppongo che ci siano tra lo script e il <body...>

    Potresti inserire il preload nella head: in questo modo avresti un ritardo nel caricamento della pagina (che dipende da quanto pesano le immagini), ma poi non avresti ritardi nel caricamento delle immagini di rollover.

    Prova cosi`:
    codice:
    <head>
    ...
    <script ...>
    function MM_findObj(n, d) { //v4.01
    ....
    function MM_swapImage() { //v3.0
    ....
    function MM_swapImgRestore() { //v3.0
    ....
    function MM_preloadImages() { //v3.0
    ....
    MM_preloadImages('images/menu_hp_no.png',....,'images/menu_factotum_si.png');
    </script>
    </head>
    
    <body>
    ...
    Ciao
    Michele
    Macchè, sempre 1/2 secondi.
    Non hai del codice che usi tu per questa cosa? Non voglio necessariamente usare codice di macromedia, anzi...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    <head>
    <script ...>
    // lista nomi delle immagini
    var imm_n = new Array("images/menu_hp_no.png", "...");
    
    var imm_o = new Array(); // oggetto immagini precaricate
    for(var i=0; i<imm_n.length; i++) { // precaricamento
      imm_o[i] = new Image();
      imm_o[i].src = imm_n[i];
    }
    </script>
    </head>
    <body ...>
    ....
    <a href="prodotti.htm" 
    onmouseover="document.images['menu_prodotti_no'].src = imm_o[3].src;" 
    onMouseOut="document.images['menu_prodotti_no'].src = imm_o[2].src;">
    [img]images/menu_prodotti_no.png[/img]
    </a>
    
    ....
    Ho inserito degli acapo che probabilmente al browser non piaceranno, ma servono per chiarezza.

    Prova cosi`.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.