Menú Desplegable Multinivel
Un sistema de navegación sofisticado con múltiples niveles de menús desplegables, animaciones suaves, navegación por teclado y diseño responsivo para jerarquías complejas de sitios web.
Diseño Responsivo
Sí
Soporte para Modo Oscuro
No
líneas
1154
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Menú Desplegable Multinivel
Un sistema de navegación sofisticado que presenta múltiples niveles de menús desplegables con animaciones suaves, navegación completa por teclado y diseño responsivo para móviles. Perfecto para sitios web complejos con jerarquías de contenido profundas.
Características
- Navegación Multinivel: Soporte para 3+ niveles de menús anidados
- Animaciones Suaves: Transiciones elegantes y efectos de hover
- Navegación por Teclado: Navegación completa con teclas de flecha y soporte ARIA
- Responsivo para Móviles: Menú móvil plegable con interacciones táctiles amigables
- Variaciones de Tema: Múltiples temas visuales (Predeterminado, Oscuro, Minimalista, Colorido)
- Accesibilidad: Cumple con WCAG con atributos ARIA apropiados
- Retroalimentación Visual: Indicadores de hover, estados de carga y confirmaciones de usuario
- Soporte Táctil: Optimizado para interacciones tanto de mouse como táctiles
Componentes Clave
Estructura de Navegación
- Navegación Principal: Elementos de navegación de nivel superior
- Menús Desplegables: Elementos de menú de segundo nivel con iconos
- Submenús: Elementos de menú anidados de tercer nivel
- Alternador Móvil: Menú hamburguesa para dispositivos móviles
Elementos Interactivos
- Activación por Hover: Funcionalidad de abrir al pasar el cursor en escritorio
- Activación por Clic: Funcionalidad de abrir al tocar en móvil
- Navegación por Teclado: Soporte para teclas de flecha, Enter, Escape y Tab
- Gestión de Enfoque: Manejo apropiado del enfoque e indicadores visuales
Sistema de Temas
- Tema Predeterminado: Fondo blanco limpio con acentos azules
- Tema Oscuro: Fondo oscuro con texto claro
- Tema Minimalista: Diseño simplificado con sombras sutiles
- Tema Colorido: Fondo degradado con colores vibrantes
Niveles de Navegación
Nivel 1: Navegación Principal
- Inicio, Productos, Soluciones, Recursos, Contacto
- Diseño horizontal con indicadores de hover
- Navegación por teclado con teclas de flecha
Nivel 2: Menús Desplegables
- Categorías de productos, tipos de soluciones, secciones de recursos
- Desplegable vertical con iconos y descripciones
- Animaciones suaves de deslizamiento
Nivel 3: Submenús
- Elementos específicos dentro de categorías
- Paneles de submenú que se deslizan lateralmente
- Iconos contextuales y etiquetado claro
Navegación por Teclado
Teclas de Navegación
- Teclas de Flecha: Navegar entre elementos del menú
- Enter/Espacio: Activar elementos del menú
- Escape: Cerrar todos los menús abiertos
- Tab: Navegación estándar por tabulación
- Inicio/Fin: Saltar al primer/último elemento
Comportamiento de Navegación
- Flecha Derecha: Abrir submenú o moverse al siguiente nivel
- Flecha Izquierda: Cerrar submenú o moverse al nivel anterior
- Flechas Arriba/Abajo: Navegar dentro del nivel de menú actual
- Escape: Cerrar todos los menús y volver a la navegación principal
Responsividad Móvil
Características del Menú Móvil
- Botón alternador hamburguesa con animación
- Menú de superposición de pantalla completa
- Expansión desplegable estilo acordeón
- Tamaños de botón amigables al tacto
- Soporte para gestos de deslizamiento
Navegación Móvil
- Tocar para expandir menús desplegables
- Estructura de acordeón anidada
- Jerarquía visual clara
- Navegación fácil con el pulgar
Características de Accesibilidad
Soporte ARIA
role="navigation"para navegación principalrole="menubar"yrole="menu"para estructuras de menúrole="menuitem"para elementos individuales del menúaria-haspopupyaria-expandedpara estados desplegablesaria-labelpara etiquetas descriptivas del menú
Gestión de Enfoque
- Indicadores de enfoque visibles
- Orden lógico de tabulación
- Captura de enfoque dentro de menús abiertos
- Atajos de teclado para navegación rápida
Soporte para Lectores de Pantalla
- Etiquetas descriptivas para todos los elementos interactivos
- Anuncios de estado para cambios de estado del menú
- Comunicación clara de jerarquía
- Texto alternativo para iconos
Detalles de Animación
Animaciones del Menú
- Deslizamiento Desplegable: Animación suave de deslizamiento hacia abajo para desplegables
- Deslizamiento de Submenú: Animación de deslizamiento lateral para submenús
- Transiciones de Desvanecimiento: Cambios de opacidad para aparición suave
- Animación Escalonada: Animaciones secuenciales de elementos para atractivo visual
- Efectos de Hover: Transiciones sutiles de escala y color
Estados de Carga
- Animaciones de spinner para carga de menú
- Marcadores de posición esqueleto para contenido
- Mejora progresiva
Organización de Contenido
Menú de Productos
- Desarrollo Web: Frontend, Backend, Móvil, Herramientas
- Servicios de Diseño: UI/UX, Diseño Gráfico, Prototipado, Marca
- Soluciones en la Nube: Servicios de infraestructura y despliegue
- Servicios de Seguridad: Servicios de ciberseguridad y protección
Menú de Soluciones
- Empresarial: Sistemas a gran escala, Análisis, Seguridad
- Pequeñas Empresas: Paquetes iniciales, Herramientas de negocio, Soluciones de crecimiento
- Educativo: Recursos de aprendizaje y capacitación
Menú de Recursos
- Documentación: Guías técnicas y referencias
- Tutoriales en Video: Contenido de aprendizaje paso a paso
- Foro de la Comunidad: Discusiones de usuarios y soporte
- Blog: Últimas noticias e insights
Opciones de Personalización
Personalización Visual
- Colores: Esquemas de colores primarios, secundarios y de acento
- Tipografía: Familias de fuentes, tamaños y pesos
- Espaciado: Ajustes de padding, márgenes y gaps
- Sombras: Variaciones de sombra de caja y profundidades
- Bordes: Estilos de borde, colores y radio
Personalización de Comportamiento
- Temporización: Configuraciones de duración y retraso de animación
- Disparadores: Preferencias de activación por hover vs clic
- Puntos de Quiebre Móviles: Puntos de quiebre de diseño responsivo
- Posicionamiento del Menú: Alineación izquierda, derecha o centrada
Consideraciones de Rendimiento
- Manejo Eficiente de Eventos: Oyentes de eventos delegados
- Transformaciones CSS: Animaciones aceleradas por hardware
- Carga Perezosa: Carga de contenido de submenú bajo demanda
- Interacciones Debounced: Manejadores optimizados de hover y redimensionamiento
- Manipulación Mínima del DOM: Gestión eficiente del estado
Compatibilidad de Navegadores
Soporta todos los navegadores modernos con degradación elegante:
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
- Navegadores móviles con soporte táctil
Consejos de Uso
- Mantener Profundidad de Menú Razonable: Limitar a 3 niveles para usabilidad
- Usar Etiquetas Descriptivas: Nombres de elementos de menú claros y concisos
- Implementar Estados de Carga: Mostrar retroalimentación para contenido dinámico
- Probar Navegación por Teclado: Asegurar que todos los elementos sean accesibles
- Optimizar para Tacto: Tamaños de botón adecuados para móvil
- Considerar Ancho del Menú: Prevenir desplazamiento horizontal
- Usar HTML Semántico: Marcado apropiado para accesibilidad
Características Avanzadas
Carga de Contenido Dinámico
- Contenido de submenú alimentado por AJAX
- Actualizaciones de menú en tiempo real
- Personalización de menú específica del usuario
Integración de Búsqueda
- Funcionalidad de búsqueda dentro del menú
- Sugerencias de autocompletado
- Resaltado de resultados de búsqueda
Integración de Análisis
- Seguimiento de interacciones del menú
- Análisis de comportamiento del usuario
- Soporte para pruebas A/B
HTML
246
líneas
CSS
496
líneas
JavaScript
412
líneas
<div class="multi-dropdown-demo">
<div class="demo-content">
<h2>Demo de Menú Desplegable Multinivel</h2>
<p>Un sistema de navegación integral con múltiples niveles de menús desplegables, animaciones suaves y accesibilidad completa por teclado. Perfecto para sitios web complejos con jerarquías de contenido profundas.</p>
<div class="demo-controls">
<h3>Opciones del Menú:</h3>
<div class="control-buttons">
<button class="control-btn active" data-theme="default">Predeterminado</button>
<button class="control-btn" data-theme="dark">Oscuro</button>
<button class="control-btn" data-theme="minimal">Minimalista</button>
<button class="control-btn" data-theme="colorful">Colorido</button>
</div>
</div>
</div>
<div class="menu-container">
<nav class="multi-dropdown-nav default-theme" role="navigation" aria-label="Navegación principal">
<div class="nav-brand">
<span class="brand-icon">🚀</span>
<span class="brand-text">NavDemo</span>
</div>
<ul class="nav-menu" role="menubar">
<li class="nav-item" role="none">
<a href="#" class="nav-link" role="menuitem" aria-haspopup="false">Inicio</a>
</li>
<li class="nav-item has-dropdown" role="none">
<a href="#" class="nav-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Productos
<span class="dropdown-icon">▼</span>
</a>
<ul class="dropdown-menu" role="menu" aria-label="Submenú de productos">
<li class="dropdown-item has-submenu" role="none">
<a href="#" class="dropdown-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Desarrollo Web
<span class="submenu-icon">▶</span>
</a>
<ul class="submenu" role="menu" aria-label="Submenú de desarrollo web">
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🌐</span>
Frameworks Frontend
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">⚙️</span>
Soluciones Backend
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">📱</span>
Desarrollo Móvil
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🔧</span>
Herramientas de Desarrollo
</a>
</li>
</ul>
</li>
<li class="dropdown-item has-submenu" role="none">
<a href="#" class="dropdown-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Servicios de Diseño
<span class="submenu-icon">▶</span>
</a>
<ul class="submenu" role="menu" aria-label="Submenú de servicios de diseño">
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🎨</span>
Diseño UI/UX
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🖼️</span>
Diseño Gráfico
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">📐</span>
Prototipado
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🎭</span>
Identidad de Marca
</a>
</li>
</ul>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">☁️</span>
Soluciones en la Nube
</a>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">🔒</span>
Servicios de Seguridad
</a>
</li>
</ul>
</li>
<li class="nav-item has-dropdown" role="none">
<a href="#" class="nav-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Soluciones
<span class="dropdown-icon">▼</span>
</a>
<ul class="dropdown-menu" role="menu" aria-label="Submenú de soluciones">
<li class="dropdown-item has-submenu" role="none">
<a href="#" class="dropdown-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Empresarial
<span class="submenu-icon">▶</span>
</a>
<ul class="submenu" role="menu" aria-label="Submenú empresarial">
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🏢</span>
Sistemas a Gran Escala
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">📊</span>
Plataforma de Análisis
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🔐</span>
Marco de Seguridad
</a>
</li>
</ul>
</li>
<li class="dropdown-item has-submenu" role="none">
<a href="#" class="dropdown-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Pequeñas Empresas
<span class="submenu-icon">▶</span>
</a>
<ul class="submenu" role="menu" aria-label="Submenú de pequeñas empresas">
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">🏪</span>
Paquetes Iniciales
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">💼</span>
Herramientas de Negocio
</a>
</li>
<li role="none">
<a href="#" class="submenu-link" role="menuitem">
<span class="item-icon">📈</span>
Soluciones de Crecimiento
</a>
</li>
</ul>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">🎓</span>
Educativo
</a>
</li>
</ul>
</li>
<li class="nav-item has-dropdown" role="none">
<a href="#" class="nav-link" role="menuitem" aria-haspopup="true" aria-expanded="false">
Recursos
<span class="dropdown-icon">▼</span>
</a>
<ul class="dropdown-menu" role="menu" aria-label="Submenú de recursos">
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">📚</span>
Documentación
</a>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">🎥</span>
Tutoriales en Video
</a>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">💬</span>
Foro de la Comunidad
</a>
</li>
<li class="dropdown-item" role="none">
<a href="#" class="dropdown-link" role="menuitem">
<span class="item-icon">📝</span>
Blog
</a>
</li>
</ul>
</li>
<li class="nav-item" role="none">
<a href="#" class="nav-link" role="menuitem" aria-haspopup="false">Contacto</a>
</li>
</ul>
<div class="nav-toggle" aria-label="Alternar menú de navegación" role="button" tabindex="0">
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
</div>
</nav>
<div class="menu-info">
<div class="info-item">
<span class="info-label">Tema:</span>
<span class="info-value" id="currentTheme">Predeterminado</span>
</div>
<div class="info-item">
<span class="info-label">Menú Activo:</span>
<span class="info-value" id="activeMenu">Ninguno</span>
</div>
<div class="info-item">
<span class="info-label">Profundidad del Menú:</span>
<span class="info-value" id="menuDepth">0</span>
</div>
</div>
</div>
</div>