fw-10 step 02 — Anchoring, and the measurement trap

Tasks

  1. Skip scroll anchoring first. Watch content jump as above-viewport heights resolve. This is what the browser does for you, and you have just removed it.
  2. Implement anchoring: when a measurement above the viewport changes, correct the scroll offset.
  3. Measurement thrash. Measure every row every frame; observe forced synchronous layout (bi-08). Then batch reads and writes. Then move to ResizeObserver and explain why it does not force a flush.
  4. Overscan zero: blank rows on fast scroll — the app-level analogue of checkerboarding (bi-10). Tune it and state the trade.
  5. Scroll handler vs observer. Update the window from a scroll handler; measure the one-frame lag. Replace with a sentinel/IntersectionObserver approach and prove the lag is gone.

Done when

  • Anchor drift reproduced, then fixed
  • Thrash measured before and after batching
  • One-frame lag demonstrated and eliminated