Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

127
Visualizações
Lista de visualización en la página o en el menú del cajón según el ancho de la pantalla

Tengo un menú que se muestra como un menú de hamburguesa/cajón cuando el ancho de la pantalla es inferior a cierta cantidad y estoy usando resorte de reacción para deslizar ese menú en la pantalla cuando se hace clic en el "icono de hamburguesa". Mi problema es que el <ul> está dentro de ese <animated.div> de react-springs, por lo que cuando el tamaño de la pantalla es más ancho y el menú de hamburguesas/cajón está oculto, el <ul> con los elementos de la lista se oculta con él, lo que No quiero, quiero que el menú se muestre normalmente en página (sin cajón) cuando la pantalla es más ancha. ¿Hay alguna manera de lograr esto sin tener que crear dos <ul> con los mismos <li> dos veces, uno dentro de <animated.div> que se muestra en un menú de cajón en pantallas más estrechas y otro que se muestra en la página? en pantallas más anchas?

React.js/JSX:

 return ( //State of menuVisible starts off as false <FontAwesomeIcon className="menuBarIcon" icon={faBars} onClick={() => setMenuVisible(!menuVisible)}/> {menuTransitions( (styles, item) => item && <animated.div style={styles} className="menu"> <ul> <li><a>Menu Item One</a></li> <li><a>Menu Item Two</a></li> <li><a>Menu Item Three</a></li> <li><a>Menu Item Four</a></li> <li><a>Menu Item Five</a></li> </ul> </animated.div> )} );

CSS:

 //Wider screens .menuBarIcon { display: none; } @media (max-width: 1080px) { //Narrower screens .menuBarIcon { display: inline; float: right; padding: 10px; margin: 25px; } .menu { position: fixed; top: 0; left: 0; width: 320px; height: 100%; } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo resolví, lo que hice fue primero tener el <ul> fuera del <animated.div> para que ahora se muestre normalmente en pantallas más anchas. Luego agregué un operador ternario al <ul> basado en el estado de menuVisible para que alternara entre dos clases, una que ocultaría el <ul> y otra que lo mostraría. Luego, para colocarlo dentro del menú del cajón, simplemente agregué el CSS de la clase de menu al <ul> en la consulta de medios para pantallas más estrechas.

React.js/JSX:

 return ( <FontAwesomeIcon className="menuBarIcon" icon={faBars} onClick={() => setMenuVisible(!menuVisible)}/> {menuTransitions( (styles, item) => item && <animated.div style={styles} className="menu"> </animated.div> )} //Class alternates between the two based on condition of the state of menuVisible <ul className={menuVisible ? "menuActive" : "menuInactive"}> <li><a>Menu Item One</a></li> <li><a>Menu Item Two</a></li> <li><a>Menu Item Three</a></li> <li><a>Menu Item Four</a></li> <li><a>Menu Item Five</a></li> </ul> );

CSS:

 @media (max-width: 1080px) { //Narrower screens .menu { position: fixed; top: 0; left: 0; width: 320px; height: 100%; } ul { //Added same CSS as .menu class to Ul to position the list within the drawer menu position: fixed; top: 0; left: 0; width: 280px; //width is different to compensate for padding in li height: 100% flex-direction: column; } .menuActive { //Ul displays normally when menuVisible state is true display: block; } .menuInactive { //Ul is hidden when menuVisible state is false display: none; } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda