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

120
Vistas
El enlace de anclaje salta más alto de lo necesario en Safari

Tengo varios enlaces de anclaje en mi sitio web y todos funcionan correctamente. Sin embargo, un enlace específico muestra un comportamiento extraño, y solo en Safari (tanto iPhone como MacOS). Se desplaza más alto que la posición real del div anclado, pero no hasta la parte superior del documento, ni un poco más alto, ni hasta la parte superior exacta del elemento anterior, solo un número aleatorio alrededor de 400-500 px.

Mi versión de Safari en Mac - 14.1.2 (16611.3.10.1.6)

Estoy usando este gancho para desplazarme

 useEffect(() => { const anchor = router.asPath.split('#')[1]; if (anchor) { setTimeout(() => { const node = document.getElementById(anchor); const header = document.querySelector('header.sticky'); if (node && header) { window.scrollTo({ top: node.offsetTop - (header as HTMLElement).offsetHeight, }); } }, 100); } }, [router.asPath]);

Ya he probado:

  • registrando los valores de offsetTop (son casi iguales en Safari y Chrome, y la diferencia es mucho mayor)
  • eliminando parte con header.offsetHeight (cambió solo ligeramente, como se esperaba, en la altura del encabezado, pero el problema persiste)
  • comprobando si algunos otros elementos contienen la misma identificación que mi div de destino (no)
  • revisando la ortografía de este ancla (es correcta)
  • convirtiendo el enlace de 'https://mylink#anchor' a 'https://mylink/#anchor' (nada cambió)
  • comprobando si hay alguna diferencia entre esta sección y todas las demás en el sitio web (no, es absolutamente estándar)

Realmente agradecería cualquier ayuda, ya que ahora estoy totalmente despistado con este problema.

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

0

Por que no

 document.getElementById(anchor).scrollIntoView({behavior: "smooth" })
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