Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

267
Views
JS/CSS: ¿eliminar los elementos huérfanos de la última fila de flexbox mediante el uso de un detector de eventos de cambio de tamaño para mostrar/ocultar elementos?

Tengo una cuadrícula flexible que muestra elementos de diferentes anchos (rectángulo, cuadrado, etc.) y extrae datos de una API, por lo que la lista es dinámica, por lo que cada fila siempre es diferente. Esto a menudo da como resultado elementos flexibles "huérfanos" al final de la cuadrícula flexible, especialmente en los puntos de interrupción más bajos.

He notado que generalmente solo tengo 2 o 3 elementos persistentes en la última fila.

Mi objetivo es mostrar solo filas completas y deshacerme de todos los elementos huérfanos.

ingrese la descripción de la imagen aquí

Pensé en diferentes formas de lograr esto y noté que todos mis elementos huérfanos 1) ocurren cuando reduzco mi pantalla por debajo de 1750px y 2) los elementos huérfanos están por encima de 300 px, grandes ya que no tienen contenido la próxima vez que obliga que sean pequeños.

Pensé en agregar un detector de eventos de cambio de resize para verificar solo los últimos 6 elementos de mi cuadrícula flexible. Si su altura es superior a 310 , agrego el estilo display: none , de lo contrario display: block .

 this.throttledCheckOrphanItems = throttle(() => this.checkOrphanItems(), 300); window.addEventListener('resize', this.throttledCheckOrphanItems); 

 checkOrphanItems() { if (window.innerWidth > 1750) { return; } const items = document.getQuerySelectorAll('.movieItems'); for (let x = items.length - 1; x >= items.length - 6; x--) { const height = items[x].getBoundingClientRect().height; if (height >= 310) { items[x].style.display = 'none'; } else { items[x].style.display = 'block'; } } },

"Funciona", pero no es una experiencia fluida.

Sé que esta no es una gran solución, pero no puedo encontrar otra forma sin sacrificar la configuración de mi cuadrícula. ¿Hay una mejor manera de que solo pueda mostrar filas completas? Si no es así, ¿hay alguna manera de optimizar mi solución o hacerla más eficaz?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!