Files
ONE/frontend
Sakurasan 08250b58ef 导航:修复顶栏隐藏/唤回在滚动徘徊时的抽搐
根因:隐藏/唤回是单事件方向判定——滚动事件里下滑 4px 就藏、往上一有
回弹就现身。拖动页面在阈值附近徘徊时(触控板噪声 / 惯性回弹 / 滚动条
微调都会产生正负几十像素的事件),顶栏每次都被翻转,吸顶头(标题 +
切换 tabs + 发布盒顶部)跟着一起上下滑动——即站主截图里的抽搐。

修复:改成「同向累计迟滞」——滚动事件按方向累计净滚动量(acc),
同向持续累计、反向从新方向重新累计,小幅往复正负抵消:

- 累计下滑 40px(且 y > 120,滚出页首区)→ 隐藏
- 隐藏状态下累计上滑 60px → 唤回
- 滚回页首(y ≤ 80)或菜单打开时强制显示(不变)

实测:在阈值附近以 ±70px 快速往复 1.1 秒,翻转 0 次、顶栏稳定;
持续滚动(下滑 → 隐藏、上滑 81px → 唤回、再下滑 → 再隐藏)状态
切换全部正确。prefers-reduced-motion 下过渡照旧禁用。
2026-09-27 17:06:15 +08:00
..