Categoría · Interactivo Nivel de Dificultad · Intermedio Publicado el · 22 de enero de 2024

Línea de Tiempo Interactiva

Componente moderno de línea de tiempo interactiva con animaciones suaves, efectos hover y diseño responsivo. Perfecto para mostrar historia de empresa, hitos de proyectos o eventos cronológicos.

#timeline #interactivo #milestones #history #chronological

Diseño Responsivo

Soporte para Modo Oscuro

líneas

1085

Compatibilidad del Navegador

No

Vista Previa en Vivo

Interactúa con el componente sin salir de la página.

600px

Línea de Tiempo Interactiva

Un componente moderno de línea de tiempo interactiva con animaciones suaves, efectos hover y diseño responsivo. Perfecto para mostrar historia de empresa, hitos de proyectos, hojas de ruta de productos o cualquier evento cronológico con narrativa visual atractiva.

Características

  • Animaciones Suaves: API Intersection Observer para animaciones de scroll optimizadas en rendimiento
  • Elementos Interactivos: Efectos hover, interacciones de clic y navegación por teclado
  • Visualización de Progreso: Línea de progreso dinámica que se llena mientras el usuario hace scroll
  • Diseño Responsivo: Layout adaptativo para todos los tamaños de pantalla con enfoque mobile-first
  • Accesibilidad: Navegación completa por teclado, etiquetas ARIA y soporte para lectores de pantalla
  • Diseño Glassmorphism: Estética moderna de vidrio esmerilado con efectos de desenfoque de fondo
  • Optimizado para Rendimiento: Eventos de scroll limitados y manipulación eficiente del DOM

Opciones de Navegación

  • Animación Basada en Scroll: Los elementos se animan a la vista mientras el usuario hace scroll
  • Navegación por Teclado: Teclas de flecha, Inicio/Fin, Enter/Espacio para interacción
  • Interacciones de Clic: Hacer clic en elementos de línea de tiempo para resaltar y enfocar
  • Scroll Suave: Scroll animado hacia arriba y navegación de enlaces internos
  • Seguimiento de Progreso: Línea de progreso visual muestra estado de completado

Características de Personalización

  • Contenido Dinámico: Agregar/remover elementos de línea de tiempo programáticamente
  • Iconos Personalizados: Iconos SVG para cada marcador de línea de tiempo
  • Datos Flexibles: Soporte para estadísticas, logros y contenido rico
  • Timing de Animación: Retrasos y duraciones de animación configurables
  • Temas Visuales: Colores, gradientes y estilos personalizables

Optimizaciones de Rendimiento

  • Intersection Observer para detección eficiente de scroll
  • RequestAnimationFrame para animaciones suaves
  • Manejadores de eventos de scroll y redimensionamiento limitados
  • Carga perezosa de animaciones de elementos de línea de tiempo
  • Prevención de memory leaks con limpieza adecuada

Métodos de API

const timeline = new InteractiveTimeline();

// Métodos de navegación
timeline.scrollToItem(2);           // Scroll a elemento específico de línea de tiempo
timeline.focusTimelineItem(1);      // Enfocar elemento de línea de tiempo con teclado
timeline.highlightTimelineItem(item); // Resaltar elemento específico

// Gestión de contenido
timeline.addTimelineItem(itemData); // Agregar nuevo elemento de línea de tiempo
timeline.removeTimelineItem(1);     // Remover elemento por índice

// Métodos de información
timeline.getVisibleItems();         // Obtener elementos actualmente visibles
timeline.getPerformanceMetrics();   // Obtener datos de rendimiento

// Métodos utilitarios
timeline.smoothScrollTo(position, duration); // Scroll suave a posición
timeline.updateLayout();            // Recalcular layout
timeline.destroy();                 // Limpiar y remover listeners

Estructura de Elemento de Línea de Tiempo

// Crear elemento de línea de tiempo personalizado
const timelineItem = {
  year: '2024',
  date: 'Marzo 2024',
  title: 'Hito Mayor',
  description: 'Descripción detallada del hito...',
  icon: '<svg>...</svg>', // Icono SVG personalizado
  stats: [
    { number: '100K', label: 'Usuarios' },
    { number: '50', label: 'Países' }
  ],
  achievements: [
    '🎉 Lanzamiento de Producto',
    '🚀 Expansión Global',
    '⭐ Premio de Industria'
  ]
};

timeline.addTimelineItem(timelineItem);

Personalización CSS

/* Esquema de colores personalizado */
.timeline-container {
  background: linear-gradient(135deg, tu-color-1, tu-color-2);
}

/* Estilo de marcador personalizado */
.marker-icon {
  background: linear-gradient(135deg, tu-primario, tu-secundario);
  border-color: tu-color-acento;
}

/* Timing de animación personalizado */
.timeline-item {
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Estilo de tarjeta personalizado */
.timeline-card {
  background: rgba(tu-color, 0.1);
  border-color: rgba(tu-color, 0.2);
}

Características de Accesibilidad

  • Navegación por Teclado: Accesibilidad completa por teclado con teclas de flecha
  • Etiquetas ARIA: Etiquetado apropiado para lectores de pantalla
  • Gestión de Foco: Orden lógico de tabulación e indicadores de foco
  • Movimiento Reducido: Respeta las preferencias de movimiento del usuario
  • Alto Contraste: Compatible con modos de alto contraste
  • Lector de Pantalla: Estructura HTML semántica para tecnología asistiva

Soporte de Navegadores

  • Chrome 60+ (soporte completo)
  • Firefox 55+ (soporte completo)
  • Safari 12+ (soporte completo)
  • Edge 79+ (soporte completo)
  • iOS Safari 12+ (soporte completo)
  • Android Chrome 60+ (soporte completo)

Casos de Uso

  • Historia de Empresa: Mostrar hitos comerciales y crecimiento
  • Hoja de Ruta de Producto: Mostrar línea de tiempo de desarrollo y planes futuros
  • Línea de Tiempo de Proyecto: Rastrear fases de proyecto y entregables
  • Portafolio Personal: Destacar logros profesionales y educación
  • Historia de Eventos: Documentar eventos y fechas importantes
  • Visualización de Procesos: Mostrar flujos de trabajo paso a paso

Ejemplos de Integración

<!-- Estructura básica de elemento de línea de tiempo -->
<div class="timeline-item" data-year="2024">
  <div class="timeline-marker">
    <div class="marker-icon">
      <!-- Icono SVG personalizado -->
      <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
        <path d="..." stroke="currentColor" stroke-width="2"/>
      </svg>
    </div>
  </div>
  <div class="timeline-content">
    <div class="timeline-card">
      <div class="card-header">
        <span class="timeline-date">Marzo 2024</span>
        <h3 class="timeline-event-title">Título del Evento</h3>
      </div>
      <div class="card-body">
        <p class="timeline-description">Descripción del evento...</p>
        <!-- Estadísticas opcionales -->
        <div class="timeline-stats">
          <div class="stat-item">
            <span class="stat-number">100K</span>
            <span class="stat-label">Usuarios</span>
          </div>
        </div>
        <!-- Logros opcionales -->
        <div class="timeline-achievements">
          <span class="achievement-badge">🎉 Logro</span>
        </div>
      </div>
    </div>
  </div>
</div>

Configuración Avanzada

// Configuración avanzada de línea de tiempo
const timeline = new InteractiveTimeline({
  container: '.timeline-personalizada',
  observerOptions: {
    threshold: 0.3,
    rootMargin: '0px 0px -50px 0px'
  },
  animationDuration: 800,
  progressLineGradient: {
    active: 'rgba(255, 255, 255, 0.8)',
    inactive: 'rgba(255, 255, 255, 0.3)'
  }
});

HTML

212

líneas

CSS

404

líneas

JavaScript

469

líneas


                <div class="timeline-container">
  <div class="timeline-header">
    <h2 class="timeline-title">Nuestro Recorrido</h2>
    <p class="timeline-subtitle">Hitos que moldearon nuestra historia</p>
  </div>
  
  <div class="timeline-wrapper">
    <div class="timeline-line" id="timelineLine"></div>
    
    <!-- Elemento de Línea de Tiempo 1 -->
    <div class="timeline-item" data-year="2020">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M13 2L3 14H12L11 22L21 10H12L13 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Enero 2020</span>
            <h3 class="timeline-event-title">Fundación de la Empresa</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Comenzamos nuestro viaje con la visión de revolucionar la industria tecnológica. Fundada por un equipo de desarrolladores y diseñadores apasionados comprometidos con crear soluciones innovadoras.
            </p>
            <div class="timeline-stats">
              <div class="stat-item">
                <span class="stat-number">3</span>
                <span class="stat-label">Fundadores</span>
              </div>
              <div class="stat-item">
                <span class="stat-number">\$50K</span>
                <span class="stat-label">Inversión Inicial</span>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Elemento de Línea de Tiempo 2 -->
    <div class="timeline-item" data-year="2020">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M16 21V5A2 2 0 0 0 14 3H10A2 2 0 0 0 8 5V21L12 19L16 21Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Junio 2020</span>
            <h3 class="timeline-event-title">Lanzamiento del Primer Producto</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Lanzamos nuestro producto estrella después de meses de desarrollo y pruebas. El producto recibió comentarios abrumadoramente positivos de los primeros adoptantes y probadores beta.
            </p>
            <div class="timeline-achievements">
              <span class="achievement-badge">🚀 Lanzamiento de Producto</span>
              <span class="achievement-badge">👥 100+ Usuarios Beta</span>
              <span class="achievement-badge">⭐ Calificación 4.8/5</span>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Elemento de Línea de Tiempo 3 -->
    <div class="timeline-item" data-year="2021">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M17 21V13H7V21M7 3V8H15M19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Marzo 2021</span>
            <h3 class="timeline-event-title">Financiación Serie A</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Aseguramos financiación Serie A para acelerar el crecimiento y expandir nuestro equipo. Este hito nos permitió escalar operaciones e invertir en tecnología de vanguardia.
            </p>
            <div class="timeline-stats">
              <div class="stat-item">
                <span class="stat-number">\$2M</span>
                <span class="stat-label">Financiación Obtenida</span>
              </div>
              <div class="stat-item">
                <span class="stat-number">15</span>
                <span class="stat-label">Miembros del Equipo</span>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Elemento de Línea de Tiempo 4 -->
    <div class="timeline-item" data-year="2022">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M12 2L15.09 8.26L22 9L17 14L18.18 21L12 17.77L5.82 21L7 14L2 9L8.91 8.26L12 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Septiembre 2022</span>
            <h3 class="timeline-event-title">Reconocimiento de la Industria</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Recibimos múltiples premios y reconocimientos de la industria por innovación y excelencia. Nuestro producto fue destacado en importantes publicaciones tecnológicas y conferencias.
            </p>
            <div class="timeline-achievements">
              <span class="achievement-badge">🏆 Premio Innovación Tech</span>
              <span class="achievement-badge">📰 Destacado en TechCrunch</span>
              <span class="achievement-badge">🎤 Orador Principal</span>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Elemento de Línea de Tiempo 5 -->
    <div class="timeline-item" data-year="2023">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M21 16V8A2 2 0 0 0 19 6H5A2 2 0 0 0 3 8V16A2 2 0 0 0 5 18H19A2 2 0 0 0 21 16Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
            <path d="M7 10H17M7 14H17" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Diciembre 2023</span>
            <h3 class="timeline-event-title">Expansión Global</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Expandimos operaciones globalmente con oficinas en tres continentes. Alcanzamos hitos significativos de usuarios y establecimos asociaciones con grandes corporaciones.
            </p>
            <div class="timeline-stats">
              <div class="stat-item">
                <span class="stat-number">50K+</span>
                <span class="stat-label">Usuarios Activos</span>
              </div>
              <div class="stat-item">
                <span class="stat-number">25</span>
                <span class="stat-label">Países</span>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    
    <!-- Elemento de Línea de Tiempo 6 -->
    <div class="timeline-item" data-year="2024">
      <div class="timeline-marker">
        <div class="marker-icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none">
            <path d="M12 2L2 7L12 12L22 7L12 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
            <path d="M2 17L12 22L22 17" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
            <path d="M2 12L12 17L22 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </div>
      </div>
      <div class="timeline-content">
        <div class="timeline-card">
          <div class="card-header">
            <span class="timeline-date">Presente</span>
            <h3 class="timeline-event-title">Visión Futura</h3>
          </div>
          <div class="card-body">
            <p class="timeline-description">
              Continuamos innovando y empujando los límites en tecnología. Trabajando en soluciones de próxima generación que darán forma al futuro de nuestra industria.
            </p>
            <div class="timeline-achievements">
              <span class="achievement-badge">🔮 Integración IA</span>
              <span class="achievement-badge">🌱 Enfoque Sostenibilidad</span>
              <span class="achievement-badge">🚀 Plataforma Nueva Gen</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  <!-- Navegación de Línea de Tiempo -->
  <div class="timeline-navigation">
    <button class="nav-btn" id="scrollToTop">
      <svg width="20" height="20" viewBox="0 0 24 24" fill="none">
        <path d="M18 15L12 9L6 15" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
      </svg>
      Volver Arriba
    </button>
  </div>
</div>

              
212líneas
9520caracteres
HTMLIdioma

Fragmentos de Código Relacionados

Explora packs de plantillas

¿Necesitas bloques más grandes? Descubre landings y colecciones de componentes.

Abrir la biblioteca de plantillas →