Auslösen eines Bildlaufereignisses für das Lazy Load jQuery Plugin
-
21-12-2019 - |
Frage
Ich arbeite mit Faule Ladung um Bilder nur zu laden, wenn sie sichtbar sind und die Bilder, die zuerst in einem Popout-Menü sichtbar sind, nicht geladen werden.Alle Bilder befinden sich innerhalb <li>
elemente auf einer ungeordneten Liste.Wenn ich anfange, in der Liste nach unten zu scrollen, werden die Bilder wie gewünscht geladen.Aber wie bekomme ich die wenigen ersten Bilder angezeigt, wenn das Menü zum ersten Mal geöffnet wird?
Ich habe versucht, das auszulösen scroll
ereignis, zusammen mit anderen Ereignissen, aber keiner von ihnen schien zu funktionieren.Der <ul>
befindet sich in einem Menü, das aus einer "Infoleiste" (nur eine Leiste mit Links oben auf der Seite) hervorgeht.Ich dachte, vielleicht hat das etwas damit zu tun, dass sie (die Bilder) beim Laden der Seite nicht sofort sichtbar sind?
Hier ist meine Lazyload-Initialisierung:
$("img.lazy", this.list).show().lazyload({
effect: "fadeIn",
container: this.list,
threshold: 50
});
$(this.list).trigger("scroll"); // tried this
$(document).trigger("scroll"); // and that
// this.list is the unordered list
Ich habe auch versucht, das Plugin mit zu initialisieren mouseenter
und scrollstop
wie die event
eigenschaften, die dann diese Ereignisse auslösen, kein Glück.
Lösung
Zweiten this.list
ist, wo du falsch gehst.Lazy Load funktioniert weiter <img>
elemente und nicht auf <ul>
$("img.lazy", this.list).trigger("scroll"); // should work