Categoría · Menús de Navegación Nivel de Dificultad · Principiante Publicado el · 17 de enero de 2024

Menú Deslizante

Un menú deslizante moderno con animaciones suaves, direcciones personalizables y diseño responsivo. Perfecto para aplicaciones mobile-first y navegación eficiente en espacio.

#sliding #movil #navigation #responsive #animated

Diseño Responsivo

Soporte para Modo Oscuro

No

líneas

1126

Compatibilidad del Navegador

No

Vista Previa en Vivo

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

400px

Menú Deslizante

Un componente de menú deslizante moderno y versátil con múltiples direcciones de animación, estilos personalizables y diseño responsivo. Perfecto para aplicaciones mobile-first y sistemas de navegación eficientes en espacio.

Características

  • Múltiples Direcciones: Desliza desde izquierda, derecha, arriba o abajo
  • Estilos de Animación: Animaciones de superposición, empuje y revelación
  • Optimizado para Móvil: Interacciones táctiles amigables y diseño responsivo
  • Animaciones Suaves: Transiciones CSS aceleradas por hardware
  • Navegación por Teclado: Soporte completo de accesibilidad por teclado
  • Perfil de Usuario: Visualización integrada de información del usuario
  • Acciones Rápidas: Botones de acción convenientes en el pie del menú
  • Indicadores de Estado: Información del estado del menú en tiempo real
  • Personalizable: Fácil de modificar colores, tamaños y comportamientos

Componentes Clave

Estructura del Menú

  • Encabezado: Perfil de usuario con avatar y botón de cerrar
  • Navegación: Elementos principales del menú con iconos y badges
  • Pie: Acciones rápidas y funcionalidad de cerrar sesión
  • Superposición: Fondo semitransparente de superposición

Direcciones de Animación

  • Izquierda: Se desliza desde el lado izquierdo (predeterminado)
  • Derecha: Se desliza desde el lado derecho
  • Arriba: Se desliza hacia abajo desde arriba
  • Abajo: Se desliza hacia arriba desde abajo

Estilos de Animación

  • Superposición: El menú aparece sobre el contenido
  • Empuje: El menú empuja el contenido hacia un lado
  • Revelar: El contenido se desliza para revelar el menú debajo

Elementos del Menú

Enlaces de Navegación

  • Inicio: Panel principal con badge “Nuevo”
  • Panel: Analíticas y resumen
  • Usuarios: Gestión de usuarios con indicador de conteo
  • Proyectos: Gestión de proyectos
  • Analíticas: Datos e informes
  • Mensajes: Comunicación con conteo de no leídos
  • Calendario: Horarios y eventos
  • Configuración: Preferencias de la aplicación

Acciones Rápidas

  • Nuevo Proyecto: Crear nuevo proyecto
  • Exportar Datos: Descargar exportaciones de datos
  • Cerrar Sesión: Salir de la aplicación

Características Interactivas

Controles del Menú

  • Botón Hamburguesa: Disparador de menú animado de tres líneas
  • Botón Cerrar: Botón X en el encabezado del menú
  • Clic en Superposición: Hacer clic fuera para cerrar
  • Atajos de Teclado: ESC para cerrar, flechas para navegar

Retroalimentación Visual

  • Estados Activos: Página actual resaltada
  • Efectos Hover: Transiciones de color suaves
  • Estados de Carga: Indicadores animados
  • Visualización de Estado: Información del menú en tiempo real

Diseño Responsivo

Características Móviles

  • Gestos Táctiles: Deslizar para abrir/cerrar
  • Tamaños Optimizados: Tamaños apropiados de botones y texto
  • Ancho Reducido: Menú más estrecho en pantallas pequeñas
  • Cierre Automático: El menú se cierra después de navegación en móvil

Características de Escritorio

  • Interacciones Hover: Estados hover mejorados
  • Navegación por Teclado: Soporte completo de teclas de flecha
  • Objetivos Táctiles Más Grandes: Áreas de clic cómodas
  • Diseño Multi-columna: Uso eficiente del espacio

Características de Accesibilidad

Soporte ARIA

  • role="navigation" para el contenedor del menú
  • aria-label para etiquetas descriptivas de botones
  • aria-expanded para indicación del estado del menú
  • Jerarquía apropiada de encabezados
  • Tab: Navegar a través de elementos interactivos
  • Teclas de Flecha: Moverse entre elementos del menú
  • Enter/Espacio: Activar elementos del menú
  • Escape: Cerrar menú y devolver el enfoque

Gestión de Enfoque

  • Indicadores de enfoque visibles
  • Captura de enfoque dentro del menú abierto
  • Orden lógico de tabulación
  • Devolver enfoque al disparador al cerrar

Detalles de Animación

Transformaciones CSS

  • translateX() para deslizamiento horizontal
  • translateY() para deslizamiento vertical
  • Aceleración de hardware con will-change
  • Transiciones suaves de 300ms

Temporización de Animación

  • Abrir: 300ms ease-out
  • Cerrar: 300ms ease-in
  • Hover: 150ms ease
  • Enfoque: Instantáneo para accesibilidad

Opciones de Personalización

Personalización Visual

  • Colores: Colores primarios, secundarios y de acento
  • Tipografía: Familias y tamaños de fuente
  • Espaciado: Ajustes de padding y margin
  • Sombras: Variaciones de box shadow
  • Bordes: Radio de borde y colores

Personalización de Comportamiento

  • Velocidad de Animación: Duración de transición
  • Ancho del Menú: Dimensiones del menú horizontal
  • Alto del Menú: Dimensiones del menú vertical
  • Opacidad de Superposición: Transparencia del fondo
  • Cierre Automático: Comportamiento de cierre automático del menú

Contenido del Menú

Sección de Perfil de Usuario

  • Avatar: Imagen de perfil del usuario o icono
  • Nombre: Nombre para mostrar del usuario
  • Email: Dirección de email del usuario
  • Estado: Indicador en línea/fuera de línea

Sección de Navegación

  • Iconos: Iconos emoji o de fuente de iconos
  • Etiquetas: Texto claro y descriptivo
  • Badges: Indicadores de notificación
  • Contadores: Indicadores de estado numérico

Sección de Pie

  • Acciones Rápidas: Funciones de uso frecuente
  • Configuración: Preferencias de la aplicación
  • Cerrar Sesión: Opción de cierre de sesión seguro

Consideraciones de Rendimiento

  • Transformaciones CSS: Animaciones aceleradas por hardware
  • Delegación de Eventos: Manejo eficiente de eventos
  • Redimensionamiento Debounced: Manejo optimizado de redimensionamiento de ventana
  • Reflujos Mínimos: Manipulación eficiente del DOM
  • Carga Perezosa: Carga de contenido bajo demanda

Compatibilidad de Navegadores

Soporta todos los navegadores modernos:

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+
  • Navegadores móviles con soporte táctil

Consejos de Uso

  1. Mantener Elementos del Menú Enfocados: Limitar a navegación esencial
  2. Usar Iconos Claros: Iconografía reconocible y consistente
  3. Proporcionar Retroalimentación Visual: Mostrar página actual e interacciones
  4. Probar en Móvil: Asegurar interacciones táctiles amigables
  5. Considerar Ancho del Menú: Equilibrar contenido y espacio de pantalla
  6. Implementar Enfoque Apropiado: Asegurar accesibilidad por teclado
  7. Usar HTML Semántico: Marcado apropiado para lectores de pantalla

Características Avanzadas

Soporte de Gestos

  • Gestos de deslizamiento para dispositivos móviles
  • Manejo de eventos de inicio/fin táctil
  • Desplazamiento con momentum dentro del menú

Gestión de Estado

  • Persistencia del estado abierto/cerrado del menú
  • Almacenamiento de preferencias del usuario
  • Actualizaciones dinámicas del contenido del menú

Opciones de Integración

  • Integración con router para navegación
  • Soporte de biblioteca de gestión de estado
  • Contenido del menú impulsado por API
  • Capacidades de cambio de tema

HTML

189

líneas

CSS

631

líneas

JavaScript

306

líneas


                <div class="sliding-menu-demo">
  <div class="demo-content">
    <h2>Demo de Menú Deslizante</h2>
    <p>Un componente de menú deslizante versátil con múltiples direcciones de animación, opciones de superposición y comportamiento responsivo. Ideal para aplicaciones móviles e interfaces web modernas.</p>
    
    <div class="demo-controls">
      <h3>Opciones del Menú:</h3>
      <div class="control-group">
        <div class="control-section">
          <label>Dirección:</label>
          <div class="control-buttons">
            <button class="control-btn active" data-direction="left">Izquierda</button>
            <button class="control-btn" data-direction="right">Derecha</button>
            <button class="control-btn" data-direction="top">Arriba</button>
            <button class="control-btn" data-direction="bottom">Abajo</button>
          </div>
        </div>
        <div class="control-section">
          <label>Estilo:</label>
          <div class="control-buttons">
            <button class="style-btn active" data-style="overlay">Superposición</button>
            <button class="style-btn" data-style="push">Empujar</button>
            <button class="style-btn" data-style="reveal">Revelar</button>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="menu-container">
    <div class="app-header">
      <button class="menu-trigger" aria-label="Alternar menú">
        <span class="hamburger-icon">
          <span class="line"></span>
          <span class="line"></span>
          <span class="line"></span>
        </span>
      </button>
      <h1 class="app-title">App Menú Deslizante</h1>
      <div class="header-actions">
        <button class="action-btn" aria-label="Buscar">
          <span class="icon">🔍</span>
        </button>
        <button class="action-btn" aria-label="Notificaciones">
          <span class="icon">🔔</span>
          <span class="badge">3</span>
        </button>
      </div>
    </div>
    
    <div class="main-content">
      <div class="content-section">
        <h2>Bienvenido a la App</h2>
        <p>Esta es el área de contenido principal. Haz clic en el botón del menú para abrir el menú deslizante desde diferentes direcciones.</p>
        
        <div class="feature-cards">
          <div class="feature-card">
            <div class="card-icon">📱</div>
            <h3>Mobile First</h3>
            <p>Optimizado para dispositivos móviles con interacciones táctiles amigables.</p>
          </div>
          <div class="feature-card">
            <div class="card-icon">🎨</div>
            <h3>Personalizable</h3>
            <p>Múltiples estilos de animación y direcciones para elegir.</p>
          </div>
          <div class="feature-card">
            <div class="card-icon">⚡</div>
            <h3>Suave</h3>
            <p>Animaciones aceleradas por hardware para rendimiento óptimo.</p>
          </div>
        </div>
      </div>
    </div>
    
    <div class="sliding-menu left-menu overlay-style" role="navigation" aria-label="Navegación principal">
      <div class="menu-header">
        <div class="user-profile">
          <div class="avatar">👤</div>
          <div class="user-info">
            <div class="user-name">Juan Pérez</div>
            <div class="user-email">juan@ejemplo.com</div>
          </div>
        </div>
        <button class="menu-close" aria-label="Cerrar menú">
          <span class="close-icon">✕</span>
        </button>
      </div>
      
      <div class="menu-content">
        <nav class="menu-nav">
          <ul class="menu-list">
            <li class="menu-item">
              <a href="#" class="menu-link active">
                <span class="menu-icon">🏠</span>
                <span class="menu-text">Inicio</span>
                <span class="menu-badge">Nuevo</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">📊</span>
                <span class="menu-text">Panel</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">👥</span>
                <span class="menu-text">Usuarios</span>
                <span class="menu-count">24</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">📁</span>
                <span class="menu-text">Proyectos</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">📈</span>
                <span class="menu-text">Analíticas</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">💬</span>
                <span class="menu-text">Mensajes</span>
                <span class="menu-count">5</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">📅</span>
                <span class="menu-text">Calendario</span>
              </a>
            </li>
            <li class="menu-item">
              <a href="#" class="menu-link">
                <span class="menu-icon">⚙️</span>
                <span class="menu-text">Configuración</span>
              </a>
            </li>
          </ul>
        </nav>
        
        <div class="menu-footer">
          <div class="menu-section">
            <h4 class="section-title">Acciones Rápidas</h4>
            <div class="quick-actions">
              <button class="quick-action">
                <span class="action-icon">➕</span>
                <span class="action-text">Nuevo Proyecto</span>
              </button>
              <button class="quick-action">
                <span class="action-icon">📤</span>
                <span class="action-text">Exportar Datos</span>
              </button>
            </div>
          </div>
          
          <div class="menu-section">
            <button class="logout-btn">
              <span class="logout-icon">🚪</span>
              <span class="logout-text">Cerrar Sesión</span>
            </button>
          </div>
        </div>
      </div>
    </div>
    
    <div class="menu-overlay"></div>
    
    <div class="menu-status">
      <div class="status-item">
        <span class="status-label">Dirección:</span>
        <span class="status-value" id="currentDirection">Izquierda</span>
      </div>
      <div class="status-item">
        <span class="status-label">Estilo:</span>
        <span class="status-value" id="currentStyle">Superposición</span>
      </div>
      <div class="status-item">
        <span class="status-label">Estado:</span>
        <span class="status-value" id="menuStatus">Cerrado</span>
      </div>
    </div>
  </div>
</div>

              
189líneas
7047caracteres
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 →