Sticky Reveal
X-ray · layers
Parameters
How this effect works
The pinning costs zero JavaScript: the panel sits in a tall track with position: sticky; top: 0, so the browser holds it in view while the track scrolls past underneath. What JS does is turn leftover scroll into story time: the overall progress (0→1) is cut into equal slices, one per step, and each step's opacity is a little tent function — fully visible in the middle of its slice, blending at the borders.
The blend zone slider is the storytelling dial: a narrow zone gives slideshow-style hard cuts, a wide one gives long dreamy dissolves where two steps coexist. The slide distance adds vertical drift so incoming text rises as it fades in — motion and opacity agreeing about direction is what makes a crossfade feel intentional. The dots are the same progress number quantized to a step index.