April 25, 2025
Original CSS (256 bytes):
Original JS (237 bytes):
npx terser script.js -o script.min.js
npx cssnano styles.css styles.min.css
<!-- Basic image lazy loading -->
<img src="image.jpg" loading="lazy" alt="Description">
<!-- With JavaScript -->
<img data-src="image.jpg" class="lazy" alt="Description">
document.addEventListener("DOMContentLoaded", function() {
let lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));
if ("IntersectionObserver" in window) {
let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
let lazyImage = entry.target;
lazyImage.src = lazyImage.dataset.src;
lazyImage.classList.remove("lazy");
lazyImageObserver.unobserve(lazyImage);
}
});
});
lazyImages.forEach(function(lazyImage) {
lazyImageObserver.observe(lazyImage);
});
}
});
<title>Page Title</title>
Google Lighthouse Report
Web Design