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

297
Vistas
Desplazar automáticamente un div, no el elemento principal

Tengo una lista desplazable de elementos en una página. El usuario puede realizar una solicitud PUT y actualizar uno de los elementos. Si la solicitud PUT tiene éxito, realizo otra solicitud de red para obtener la lista actualizada. De esta lista, quiero establecer inmediatamente el elemento actualizado recientemente como activo.

Tengo el código para hacer todo esto con éxito, sin embargo, el desplazamiento no solo ocurre en mi lista, sino que también se desplaza en toda la página.

Mi lista se ve así:

 <div className={cx(styles.body)}> <div className={styles.squadList}> {squadList.map((squad, index) => { const isSelected = squad.squadId === squadSelected.squadId ? "selected" : null; return ( <div className={cx(styles.item, { [styles["item--selected"]]: isSelected, })} key={index} id={`squad-list-item-${squad.squadId}`} > <div className={styles.details}> <span className={styles.title}> {squad.squadName} </span> <span className={styles.members}> {squad.memberCount} members &nbsp; {renderAdminIcon(squad, isSelected)} </span> </div> </div> ); })} </div> </div>

Después de la solicitud de venta exitosa y mi recuperación, ejecuto

 const tgtElement = document.getElementById( `squad-list-item-${squadSelected.squadId}` ); tgtElement.scrollIntoView();

Esto funciona y desplaza el elemento deseado a la parte superior de la lista, sin embargo, también desplaza un poco la página completa.

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

0

para lograrlo, debe desplazar el div hasta el elemento deseado.

Primero obtenga el elemento offsetTop y luego configure el desplazamiento superior div para que coincida con el desplazamiento superior del elemento.

 const divToScroll = document.getElementById("divToScrollId"); const tgtElement = document.getElementById( `squad-list-item-${squadSelected.squadId}` ); // Here where the magic happens divToScroll.scrollTop = tgtElement.offsetTop;

Esto debería funcionar siempre que el div para desplazarse tenga la posición css establecida en relativa.

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