Escludere plugin lazy load dalla sidebar
L’ottimo plugin Lazy load che permette di caricare le immagini solamente una volta che vengono viste, presenta un piccolo difetto… a volte capita che le immagini presenti nella sidebar oppure in alcuni plugin, non vengono caricate o tardano nel caricamento lasciando al loro spazio una brutta immagine grigia.
Per ovviare a questo problema si può pensare di far caricare le immagini tramite lazy load solamente alle immagini del post, ed escludere tutto il resto del blog.
Ecco il codice che permette di fare ciò:
jQuery("#content").find("img").lazyload({
Questo codice va inserito al posto della riga 27 del file jq_img_lazy_load.php (nella cartella del plugin), ovvero:
jQuery("img").lazyload({
In questo modo verranno selezionate tramite JQuery tutte le immagini presenti nel div #content, solitamente è il div che contiene tutto il post, altrimenti sostituisci il nome del tuo div che contiene il post —-> #tuo-div .
E’ possibile anche selezionare più div contemporaneamente, ad esempio se hai immagini sia nel post che nel footer dovrai utilizzare:
jQuery("#content,#footer").find("img").lazyload({
Ovvero basta separare più div con una virgola.
Ti segnalo un articolo in inglese che spiega bene i selettori per JQuery.
Sei riuscito a far caricare tramite lazy load solo le immagini del post escludendo la sidebar o altre parti?
02/08/2011 alle 21:39
Ciao Roberto,
innanzitutto complimenti, perchè pare che questo sia l’unico articolo in italiano che tratta il tema in questione.
Ho provato a fare quanto dici, ma alla riga 27, il mio codice non è quello che indichi tu – questo: jQuery(“img”).lazyload({ – ma è quest’altro:
jQuery(“img”).not(“.cycle img”).lazyload({
Ho provato comunque la sostituzione, ma il plugin ha smesso di funzionare.
Poichè non sono un tecnico, posso chiederti di darmi una mano?
Possibile che abbiamo 2 diversi codici per lo stesso plugin?
Forse il tuo è una vecchia release?
Grazie anticipatamente,
Josè
02/08/2011 alle 21:57
Ciao Jose’,
esatto, la mia versione è vecchia, è la v0.10…
Non ho la nuova versione sotto mano, per cui non sono cose verificate quelle che ti stò per dire:
prova aggiungendo
jQuery("#content").
al codice che hai, così da diventare:jQuery("#content"). jQuery(“img”).not(“.cycle img”).lazyload({
Vediamo che succede…
PS: fai sempre un backup dei file che modifichi
02/08/2011 alle 22:28
Niente da fare!
🙁
Purtroppo cambiando la stringa, è come se si disattivasse il plugin…
Hai altre soluzioni?
04/08/2011 alle 19:42
Domani vedo di installarlo in locale e di fare qualche prova, poi ti farò sapere
04/08/2011 alle 21:47
Grazie!
Sei grande!
^_^
06/08/2011 alle 00:47
Purtroppo non sono riuscito a fare ciò che volevi, ho dato solo una sbirciatina e fatto alcune prove ma niente.
Ti posso mettere a disposizione la vecchia versione del plugin già modificata (è quello che uso io al momento). Con questa dovrebbe andare, fai pure la prova se vuoi.
06/08/2011 alle 09:10
Grazie Roberto!
Uno dei miei programmatori ha risolto la cosa.
Tecnicamente non so cosa ha fatto, ma me lo farò spiegare e ci faremo un articolo che semmai ti segnalo.
Adesso – seguendo i tuoi consigli di un altro articolo – ho messo il plugin JavaScript to Footer che mi velocizza il caricamento notevolmente, ma annulla l’azione di jquery a cui mi stavo affezionando…
🙂
Adesso sono in preda ad un dubbio amletico: jquery o javascript footer?
Ai posteri l’ardua sentenza!
😀
Grazie 1000 di tutto,
Josè
11/08/2011 alle 13:09
Ottimo 🙂