Un componente React para cargar imágenes de forma diferida usando Intersection Observer. Liviano, personalizable y compatible con SSR.
import ImageLazy from "react-lazy-img-observer";
function App() > {
return (
<ImageLazy
src="https://example.com/photo.jpg"
alt="Example image"
width=400
height=300
/>
);
} import ImageLazy from "react-lazy-img-observer";
const Spinner = () => <div className="spinner">Loading...</div>;
function GalleryImage() > {
return (
<ImageLazy
src="/img/cat.webp"
alt="Cute Cat"
width=300
height=200
fallbackSrc="/img/fallback.webp"
backgroundColor="#eee"
animationDuration="1s"
blurAmount="8px"
transitionType="fade"
loadingComponent={ <Spinner /> }
/>
);
} .my-custom-transition {
opacity: 0;
transform: rotate(10deg) scale(0.95);
transition: all 0.8s ease-in-out;
}
.my-custom-transition.loaded {
opacity: 1;
transform: rotate(0deg) scale(1);
} Props principales disponibles:
Usa IntersectionObserver para detectar cuando la imagen entra
en el viewport.
threshold=0.5)
.my-spinner {
width: 40px;
height: 40px;
border: 4px solid #ccc;
border-top-color: #000;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
} | Característica | ImageLazy ✅ | react-lazy-load-image-component ❌ |
|---|---|---|
| Liviano | ✅ | ❌ |
| SSR Friendly | ✅ | ✅ |
| Transiciones CSS propias | ✅ | ❌ |
| Spinner nativo | ✅ | ❌ |
| Fallback | ✅ | ✅ |
| Imágenes responsivas | ✅ | ✅ |
Percy Chuzon
📧 contacto@percychuzon.com
🌐 percychuzon.com
Usa transitionType="custom" y aplica tus estilos con CSS. Así
de simple.