Usando Bootstrap + Intersection Observer
Bootstrap 5.3 Intersection Observer Cards y Grid
Bootstrap proporciona la base perfecta para narrativas basadas en scroll:
row, col-lg-8 mx-auto para flujo de historia centradocard, card-bodymb-5, py-4 para ritmo y cadenciadisplay-*, lead para jerarquía visualEl contenido aparece al hacer scroll usando la API Intersection Observer combinada con el componente card de Bootstrap.
col-lg-8 mx-auto de Bootstrap crea una columna centrada para ancho de lectura óptimo,
mientras que card y shadow-sm proporcionan estilo hermoso y consistente.
Cada sección se desvanece a medida que haces scroll, creando un flujo narrativo.
Las utilidades de espaciado de Bootstrap (mb-5, p-5) controlan el ritmo de la historia,
mientras que el sistema de grid asegura que se vea genial en todos los tamaños de pantalla.
La API Intersection Observer detecta cuando las secciones entran en el viewport.
Bootstrap maneja la estructura y el diseño responsivo, mientras JavaScript agrega las animaciones activadas por scroll. Juntos crean una experiencia de narrativa fluida.
Bootstrap + scrollytelling = narrativas atractivas con código mínimo.
La combinación de componentes de Bootstrap y animaciones de scroll personalizadas crea narrativa profesional y accesible que funciona en todos los dispositivos.
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="story-section card shadow-sm mb-5">
<div class="card-body p-5">
<h2 class="card-title display-5">Capítulo 1</h2>
<p class="card-text lead">Contenido...</p>
</div>
</div>
</div>
</div>
</div>
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, {
threshold: 0.2 // Activar cuando sea 20% visible
});
document.querySelectorAll('.story-section').forEach((section) => {
observer.observe(section);
});
.story-section {
opacity: 0;
transform: translateY(50px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.story-section.visible {
opacity: 1;
transform: translateY(0);
}
¿La revelación progresiva mejora la narrativa o distrae del contenido? ¿Cuándo es apropiado el scrollytelling vs. gratuito? Nota cómo el componente card de Bootstrap proporciona estructura consistente mientras JavaScript agrega la capa interactiva.