xfy
067075df8a
fix(post): 直接访问 #hash 时标题被 sticky header 遮住
点击锚点正常,但直接访问带 hashtag 的链接时滚动后标题被 80px sticky
header 遮住。根因:浏览器原生 fragment-scroll(直接访问触发)不读 CSS
scroll-margin-top,在我们 scrollToHash 的平滑滚动之后触发,把标题顶到
视口最顶端(header 下方)。
抽出共享 scrollToHeading:用 getBoundingClientRect 手动计算绝对滚动位置,
减去动态测量的 header 高度(+16px 呼吸空间)后 window.scrollTo,不再依赖
scroll-margin-top。hash-scroll(直接访问)与 anchor-click(点击)统一调用它。
scrollToHash 额外用双 requestAnimationFrame 延后做一次即时校正,覆盖原生
fragment-scroll 的触发窗口,确保落点在原生 scroll 之后生效。
scroll-margin-top: 6rem 保留在 input.css 作其它原生 scroll 场景的兜底。
2026-07-13 18:31:31 +08:00
..
2026-07-13 11:20:08 +08:00
2026-07-02 17:54:46 +08:00
2026-07-09 18:12:54 +08:00
2026-07-13 11:20:08 +08:00
2026-07-13 18:31:31 +08:00
2026-07-02 18:02:52 +08:00
2026-07-09 18:12:54 +08:00
2026-07-10 11:37:04 +08:00
2026-07-02 18:02:52 +08:00
2026-07-02 17:50:52 +08:00