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:
Realmente agradecería cualquier ayuda, ya que ahora estoy totalmente despistado con este problema.
Por que no
document.getElementById(anchor).scrollIntoView({behavior: "smooth" })