Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
Hacer un menú desplegable para móvil

Estoy tratando de usar consultas de medios y javascript para hacer un menú desplegable para mi página. Tengo el contenido que quiero que esté en el menú en un <div> marcado con una clase, en este caso. class="other-pages" . Mi consulta de medios tiene 2 clases: .other-pages.closed y .other-pages.open . Mi objetivo es usar javascript para cambiar la clase una vez que la consulta de medios esté activa en la clase cerrada. Luego haga un botón que tengo, cambie la clase a la versión abierta.

Así que esto es lo que tengo hasta ahora.

 let menuContentBase = document.getElementsByClassName('.other-pages'); let mediaQueryMax = window.matchMedia('(max-width: 1080px)'); if (mediaQueryMax.matches) { menuContentBase.classlist.remove('.other-pages'); menuContentBase.classlist.add('other-pages.closed'); }

Cuando cargo esto en mi navegador y miro en el depurador, sin embargo, dice que menuContentBase.classlist no está definido.

No estoy completamente seguro de qué hacer desde aquí.

Gracias por cualquier consejo/recomendación que pueda tener.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Es un simple cambio

 let element = document.querySelector(".mq-value") element.addEventListener('click', (e)=>{ e.target.classList.contains('open') ? e.target.classList.remove('open') : e.target.classList.add('open') })
 .open{ color:red }
 <div class="mq-value open"> toggle </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que el problema está en el nombre de la clase. Cuando se trata de document.getElementsByClassName , no necesita poner . antes del nombre de la clase. reemplaza esto

 let menuContentBase = document.getElementsByClassName('.other-pages');

con este

 let menuContentBase = document.getElementsByClassName('other-pages');

Si desea obtener más información al respecto, puede consultar https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName

Además, lo mismo para classList no classlist y la L debe estar en mayúsculas.

 if (mediaQueryMax.matches) { menuContentBase.classList.remove('other-pages'); menuContentBase.classList.add('other-pages.closed'); }

Prueba este y hazme saber si funciona o no. ¡Gracias!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda