Domanda

Ho un div che ha un mucchio di miniature che mostrano in orizzontale (con una barra di scorrimento orizzontale). Esiste un modo per caricare lentamente queste anteprime e mostrarle solo quando l'utente scorre in senso orizzontale fino alla loro posizione? Tutti gli esempi che ho visto controllano la finestra del browser, non un div.

Questo è per le voci del concorso, quindi a volte ci sono centinaia di voci, che influiscono drasticamente sulle prestazioni.

Grazie in anticipo.

È stato utile?

Soluzione

Ho modificato il plug-in di caricamento pigro per jQuery e ho aggiunto il supporto per lazy- caricamento di immagini in un contenitore div. Il plug-in di caricamento lento per jQuery ora supporta questo direttamente. Non dovrebbe essere troppo difficile rimuovere la dipendenza da jQuery o adattarla a un'altra libreria, se necessario.

Puoi ottenere il mio progetto biforcuto da github: http://github.com / silentmatt / jquery_lazyload / albero / master .

Per usarlo, chiama lazyload sulle immagini proprio come nell'originale, tranne per il fatto che devi aggiungere un " container " opzione con l'elemento div scorrevole. Quindi se il tuo HTML appare così:

<div id="container" style="width: 765px; overflow: scroll;">
    <img src="image1.jpg" width="765" height="574">
    <img src="image2.jpg" width="765" height="574">
    <img src="image3.jpg" width="765" height="574">
    ...
</div>

chiameresti lazyload in questo modo:

$("#container img").lazyload({ container: $("#container") });

Altri suggerimenti

Vedi la mia domanda in cui ho riscontrato un problema simile. Jason Bunting mi ha dato un piccolo script utile per caricare immagini in blocchi:

Come visualizzare lo stato di caricamento con precaricatore e multipli immagini?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top