So implementieren Sie das Vorladen von Bildern und das verzögerte Laden mit Jquery_jquery
WBOY
Freigeben: 2016-05-16 16:25:19
Original
974 Leute haben es durchsucht
Das Beispiel in diesem Artikel beschreibt, wie Jquery das Vorladen von Bildern und das verzögerte Laden implementiert. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Bei vielen Projekten muss häufig festgestellt werden, ob entsprechende Vorgänge nach dem Laden des Bildes ausgeführt oder das Laden des Bildes verzögert werden sollen. Obwohl es im Internet bereits sehr gute Plug-Ins gibt, fühlt es sich immer etwas umständlich an Um für diese Effekte ein separates Plug-In laden zu müssen, habe ich mir einfach selbst eine Methode geschrieben:
arr: Es kann ein Array zum Speichern des Bildpfads sein, oder es kann das JQuery-Objekt des ausgewählten Bildes sein;
funLoading: Der Vorgang, der nach dem Laden jedes einzelnen Bildes ausgeführt wird;
funOnLoad: Vorgang, nachdem alle Bilder geladen wurden;
funOnError: Vorgang, wenn ein einzelner Bildladefehler auftritt.
Zum Beispiel:
Code kopieren Der Code lautet wie folgt:var imgonload=function(errors){
/*errors: Anzahl der Bilder mit Ladefehlern;*/
var funloading=function(n,total,src,obj){
/*
n: Die Anzahl der geladenen Elemente;
total: die Gesamtzahl der zu ladenden Bilder;
Mit dem aktuell geladenen Bildpfad;
obj: Wenn das in der Loadimg-Funktion übergebene arr ein Array ist, das den Bildpfad speichert, ist obj=src der Bildpfad,
Wenn arr ein Jquery-Objekt ist, ist obj das aktuell geladene img-dom-Objekt.
*/
console.log(n „of“ total „ pic geladen.“,src);
var newimg = document.createElement("img");
newimg.src=src;
$("body").append(newimg).fadeIn();
}
var funloading_obj=function(n,total,src,obj){
console.log(n „of“ total „ pic geladen.“,src);
$(obj).attr("src",src);
$(obj).fadeIn(200);
}
var funOnError=function(n,total,src,obj){
console.log("der Fehler beim Laden des Bildes!");
}
Das Obige ist die ursprüngliche Schreibmethode. Als nächstes stellen wir ein jQuery-Plug-in zum verzögerten Laden von Bildern basierend auf Lazy Load vor
Lazy Load hängt von jQuery ab. Bitte fügen Sie den folgenden Code zum Kopfbereich der Seite hinzu:
Code kopieren
Der Code lautet wie folgt:
Sie müssen den HTML-Code im src-Attribut festlegen. Die Demoseite verwendet ein 1x1 Pixel großes GIF-Bild. Hier können Sie die URL des echten Bildes festlegen eine bestimmte Klasse, um das Lazy-Loading-Image-Objekt zu erhalten. Auf diese Weise können Sie Plugin-Bindungen einfach steuern.
Dies führt dazu, dass alle Bilder mit der Klasse „lazy“ träge geladen werden. Sie können sich auf die Demo der Grundoptionen beziehen
Empfindlichkeit einstellen
JavaScript ist in fast allen Browsern aktiviert. Möglicherweise möchten Sie jedoch dennoch echte Bilder auf Clients anzeigen, die JavaScript nicht unterstützen. Um dies ordnungsgemäß zu verhindern, können Sie echte Bildfragmente
In Browsern, die JavaScript unterstützen, müssen Sie den Platzhalter anzeigen, wenn das DOM bereit ist. Dies kann gleichzeitig mit der Initialisierung des Plugins erfolgen.
Diese sind optional, sollten aber durchgeführt werden, wenn Sie möchten, dass Ihr Plugin ordnungsgemäß heruntergestuft wird.
Empfindlichkeit einstellen
Standardmäßig wird das Bild geladen, wenn es auf dem Bildschirm erscheint. Wenn Sie das Bild im Voraus laden möchten, können Sie die Schwellenwertoption auf 200 einstellen, damit das Bild im Voraus geladen wird 200 Pixel vom Bildschirm entfernt
Sie können auch ein Platzhalterbild festlegen und Ereignisse definieren, um die Ladeaktion auszulösen. Zu diesem Zeitpunkt müssen Sie eine URL-Adresse für das Platzhalterbild festlegen, das bereits im Plug-in enthalten ist. in.
Ereignis hat das Laden ausgelöst
Das Ereignis kann ein beliebiges jQuery-Ereignis sein, z. B. „Click“ und „Mouseover“. Sie können auch benutzerdefinierte Ereignisse verwenden, z. B. „sporty“ und „foobar“. Standardmäßig befindet es sich im Wartezustand, bis der Benutzer zur Position scrollt Bild im Fenster. Um zu verhindern, dass das Platzhalterbild geladen wird, bis es angeklickt wird, können Sie Folgendes tun:
Verwenden Sie Spezialeffekte
Wenn das Bild vollständig geladen ist, verwendet das Plug-in standardmäßig die Methode show(), um das Bild anzuzeigen. Tatsächlich können Sie alle Spezialeffekte verwenden, die Sie verarbeiten möchten ist die Effektdemonstrationsseite
Sie können das Plug-in für Bilder in scrollbaren Containern verwenden, z. B. für DIV-Elemente mit Bildlaufleisten. Sie müssen lediglich den Container als jQuery-Objekt definieren und ihn als Parameter an die Initialisierungsmethode übergeben eine horizontal scrollende Demoseite und eine vertikal scrollende Demoseite.
Wenn die Bilder nicht in der richtigen Reihenfolge angeordnet sind
Beim Scrollen durch die Seite durchläuft Lazy Load eine Schleife und erkennt, ob sich das Bild im sichtbaren Bereich befindet. Standardmäßig stoppt die Schleife, wenn das erste Bild nicht im sichtbaren Bereich ist Das Bild wird als flüssig verteilt betrachtet, die Reihenfolge der Bilder auf der Seite stimmt jedoch nicht mit der Reihenfolge im HTML-Code überein die Failurelimit-Option
Setzen Sie die Fehlergrenze auf 10, damit das Plugin die Suche stoppt, nachdem es 10 Bilder gefunden hat, die nicht im sichtbaren Bereich sind. Wenn Sie ein umständliches Layout haben, setzen Sie diesen Parameter bitte höher.
Verzögertes Laden von Bildern
Eine unvollständige Funktion des Lazy Load-Plugins, die jedoch auch zum verzögerten Laden von Bildern verwendet werden kann. Der folgende Code implementiert das Laden der Bilder in der Seite Der angegebene Bereich wird automatisch geladen. Dies ist die Lazy-Loading-Demoseite.
Auf Ihrer Seite sind möglicherweise viele versteckte Bilder verborgen. Wenn Sie beispielsweise das Plug-in zum Filtern der Liste verwenden, können Sie den Anzeigestatus jedes Elements in der Liste kontinuierlich ändern, um die Leistung zu verbessern Beim Laden werden ausgeblendete Bilder standardmäßig ignoriert. Wenn Sie ausgeblendete Bilder laden möchten, setzen Sie „skip_invisible“ bitte auf „false“
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn