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

377
Vistas
Cómo detener el desplazamiento del cuerpo en IOS cuando se abre modal (reaccionar)

Encontré esta guía que funciona: https://codepen.io/geoffgraham/pen/LogERe

Creé este ayudante que usa el código en mi aplicación de reacción:

 export const removeBodyScrollingWhenModalOpen = ( modalOpen: boolean, ) => { if (modalOpen) { document.body.style.position = 'fixed'; document.body.style.top = `-${window.scrollY}px`; } else { const scrollY = document.body.style.top; document.body.style.position = ''; document.body.style.top = ''; window.scrollTo(0, parseInt(scrollY || '0') * -1); } };

Cuando se usa con el modal:

 const handleClose = () => { onClose(false); removeBodyScrollingWhenModalOpen(false); }; useEffect(() => { removeBodyScrollingWhenModalOpen(open); }, [open]);

Sin embargo, para que el código funcione correctamente y no pierda la posición de desplazamiento cuando se cierra el modal, necesito agregar este fragmento de código:

 window.addEventListener('scroll', () => { document.documentElement.style.setProperty('--scroll-y', `${window.scrollY}px`); });

Pero no estoy seguro de cómo implementar eso con mi gancho anterior, ¿alguna idea?

about 4 years ago · Juan Pablo Isaza
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