Blazy is a fast, SEO friendly and small but still feature-rich lazy load script. It was originally build for lazy loading images but it can also lazy load any element with a source attribute like iframes, unity games, html5 videos, scripts etc.
Blazy comes with a bunch of features like serving retina images for retina screens, multi-serve images depending on screensize and error handling. For a list of all features and more details you can visit the blog post. Blazy works in all modern browsers including IE7+.
var bLazy = new Blazy({
// Options
});
<img class="b-lazy" data-src="image.jpg" />
CSS:
.b-lazy {
opacity:0;
transform: scale(3);
transition: all 500ms;
}
.b-loaded {
opacity:1;
transform: scale(1);
}
<img class="b-lazy" src="low-res-image.jpg" data-src="image.jpg" />
<img class="b-lazy"
sizes="100vw"
data-srcset="large.jpg 1024w, medium.jpg 640w, small.jpg 320w"
data-src="medium.jpg" />
<picture>
<source
media="(min-width: 650px)"
data-srcset="image-650.jpg" />
<source
media="(min-width: 465px)"
data-srcset="image-465.jpg" />
<img class="b-lazy"
data-src="default.jpg" />
</picture>
<img class="b-lazy" data-src="image.jpg|retina-image.jpg" />
<div class="b-lazy" data-src="image.jpg"></div>
var blazy = new Blazy({
container: '.container'
});
var blazy = new Blazy({
container: '.container'
});
<iframe class="b-lazy"
data-src="https://www.youtube.com/embed/uKtjVQ5IJOQ"
frameborder="0"
allowfullscreen>
</iframe>
<video class="b-lazy" data-src="video.mp4" controls></video>
<video class="b-lazy" controls>
<source data-src="video.mp4" type="video/mp4">
<source data-src="video.webm" type="video/webm">
Your browser doesn't support HTML5 video tag.
</video>
Check the console log
<script class="b-lazy" data-src="script.js" async></script>