• User Attivo

    jQuery eseguire funzioni contemporaneamente

    Ciao ragazzi,
    eccomi di nuovo qui...
    Prima lo script che ho scritto:
    [PHP]
    $(document).ready(function() {
    $('.sfondi-thumb li a').click(function(){
    var indirizzo = $(this).attr('href');
    $('.big-thumb img').attr('src', indirizzo);

            var indice = $(".sfondi-thumb li a").index(this)+1;
            $('.ritaglio-modella div').removeClass();
            $('.ritaglio-modella div').addClass('ritaglio'+indice);
    
            return false;
        });
    });
    

    [/PHP]

    Praticamente ho un 2 div. Uno di background con un "buco" (png trasparente) ed uno che riempie il buco con 1 immagine.
    Poi ho una serie di lì con dentro delle thumb. sostanzialmente quando clicco sulla thumb viene cambiato il div di sfondo e spostato il div contenente l'immagine. Il problema è che questo passaggio avviene a "scatto" in modo sequenziale e non contemporaneo. Prima cambia il div e poi si sposta l'immagine. Come posso ovviare a questo problema? Non posso fare in modo che l'azione non venga eseguita finchè l'immagine non è caricata? Oppure devo precaricare le immagini di background?


  • Super User

    Ciao gleenk,
    secondo me ti conviene precaricare l'immagine di background, altrimenti dovresti cambiare non di poco lo script utizzando alcune istruzioni come le seguenti:

    
    var newImg = $('<img />').attr('src', 'miaimmagine.png');
    newImg.load(function(){
    //azioni da eseguire dopo il load dell'immagine
    })
    
    

  • User Attivo

    Ho fixato cercando come fare il preload! Grazie!
    qui l'articolo che mi ha salvato: engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript

    ora mi servirebbe una chicca. come faccio far apparire l'immaginetta di caricamento finchè non è finito il preload? grazie ayrton


  • Super User

    @gleenk said:

    ora mi servirebbe una chicca. come faccio far apparire l'immaginetta di caricamento finchè non è finito il preload? grazie ayrton
    Vedi sopra: tramite .load