Scroll Bounce vs. Scroll Hijack: Two Different Problems
Scroll bounce is users hitting the bottom of a page and immediately leaving. Scroll hijack is your CSS overriding their scroll behavior. One is a content problem. The other is a code problem.
Scroll bounce and scroll hijack show up together in conversations about scroll-related UX problems, but they're completely different signals with completely different fixes.
Scroll bounce is a behavioral signal. Scroll hijack is a technical failure. Treating them the same way is how teams spend three weeks redesigning a landing page when what they needed was a one-line CSS fix.
Scroll bounce
Scroll bounce fires when a user scrolls to the bottom of a page and immediately navigates away without any interaction. The key word is "immediately": within 4 seconds of reaching the bottom.
This is different from a regular bounce. A regular bounce could mean the user got what they needed (a phone number, an address, a quick answer) and left satisfied. Scroll bounce specifically captures users who consumed the full page and still left without converting or engaging.
The signal weight in the confusion score is 10. Lower than rage clicks (25) or loop navigation (20), because scroll bounce is ambiguous. It could mean the page didn't answer the user's question. It could mean they read everything and decided to compare elsewhere. The signal is useful in volume but not diagnostic on its own.
Where it gets useful: clustered on a specific page type. If your pricing page has 40% scroll bounce, users are reading the whole page and not converting. That's a content problem, not a code problem. The page is missing something they need before they can decide. They read everything. It wasn't enough.
Scroll hijack
Scroll hijack is a technical signal. It fires when the browser's native scroll behavior is overridden in a way that creates lag, jumpiness, or unexpected scroll speed on elements that users expect to scroll normally.
The most common cause is overflow: scroll or overflow-y: scroll on a container with custom scroll handling, combined with scroll event listeners that add artificial physics (inertia effects, parallax, snap behavior). When the artificial scroll doesn't match what the user's trackpad or mouse wheel expects, it fires.
This is a code problem. The experience of a scrolljacked page is immediately identifiable: you try to scroll down, the page either doesn't respond, overshoots, or moves at a speed disconnected from your input. It's one of the most reliably frustrating patterns in web UI, and it's entirely self-inflicted.
Scroll hijack weight in the confusion score is 12. Weighted higher than scroll bounce because scroll hijack is almost always a direct product decision that hurt users, while scroll bounce might just mean the page content isn't persuasive enough.
How to tell which you have
If your confusion score shows scroll-related signals, the first question is whether the dominant sub-signal is bounce or hijack.
Scroll bounce clusters at page bottoms. Element attribution shows the last scrollable container on the page. If you see 60% of scroll signal at the bottom of a specific page with no rage clicks or dead clicks elsewhere, it's a content problem.
Scroll hijack clusters wherever the custom scroll behavior lives. If you've added scroll snap to a section, parallax to a hero, or a custom smooth scroll library, and you're seeing scroll signal in those sections alongside form abandonment or rage clicks, the custom scroll behavior is the culprit.
The parallax section problem
Parallax scrolling is the most common source of scroll hijack signals in the products I've seen. The effect (background moves slower than foreground on scroll) requires intercepting scroll events. When the implementation is off by even a few lines of velocity math, the result is scroll behavior that fights the user.
The test: disable the parallax behavior entirely. Run the page without it for a week. If scroll hijack signals drop, you have your answer. The visual effect is not worth the friction.
Same applies to scroll-snapping landing page sections. Snap scrolling forces the user's scroll to jump to predefined sections. Some users find this useful. Most find it disorienting when they intended to scroll partway through a section and got launched to the next one. The signal is in the retry behavior: scroll down, snap to section 3, scroll up trying to get back to section 2, snap back to section 1.
Mobile scroll signals
On mobile, scroll hijack is more severe. Touch scroll has inertia built into the OS. When JavaScript overrides touch events for custom scroll behavior, it breaks the inertia physics users expect from every other app on their phone. The result is jarring in a way that desktop scroll override isn't.
The mobile frustration signals post covers this in more detail, but the pattern is consistent: custom scroll behavior that feels fine on desktop keyboard and mouse feels broken on mobile touch. If you're using a scroll library, test it on an actual phone before shipping.
What the fix looks like
Scroll bounce: content audit. What question is the user not finding an answer to? Scroll to the bottom of the page yourself and ask: what would make me convert from here if I hadn't already? Usually it's a missing comparison, a missing piece of proof, or a missing answer to a specific objection.
Scroll hijack: remove the custom scroll behavior. Not fix it. Remove it. Native scroll is faster, more reliable, and better for accessibility than any custom scroll library. If you need visual sophistication, CSS scroll snap is a native alternative that doesn't intercept scroll events.
The confusion score distinguishing between these two signals isn't just academic. One requires a content conversation with your product team. The other requires a 20-minute pull request. Knowing which you're fixing is the difference between a week of work and an afternoon.