Und schon wieder eine kleine Standalone-Vanilla-JS-Library, die ich am Wochenende entdeckt habe: bLazy.js (GitHub, Demo)
In dem ca. 1,5 KB Skript befindet sich die komplette Logik, um Bilder erst dann zu laden wenn sie im Viewport angezeigt werden. Und nicht nur Bilder, sondern auch I-Frames und andere Embeds können dynamisch nachgeladen werden. Und es funktioniert sogar bis hinunter in den IE7, sollte der noch von einem Portal benötigt werden.
Das Ganze läuft auch hervorragend zusammen mit dem <picture>
-Element und auch mit dem srcset
-Attribut von Bildern. Auch Elemente innerhalb von Slidern oder dynamisch nachgeladene Elemente lassen sich damit erst bei Bedarf laden. Und auch hier ist eine Integration über NPM und RequireJS möglich.