Bidirectional Scrolling: Why Not Both?

Discussing the design decisions of bidirectional scrolling in regards to performance

I recently came across Adam Silver’s post about the merits and pitfalls of bidirectional scrolling and found myself conflicted with the design arguments put forth in the article. It’s a very good article overall, and I suggest giving it a read before digging deeper into my post here.

The Premise

The original article argues that displaying page content via horizontal scrolling (and therefore slightly hiding interactive content) creates a few major issues:

Adam also makes a solid statement here:

Having to scroll down and across in a zig zag fashion can be tiresome, especially for people with motor impairments.

But I don’t believe these issues create a need to completely remove the horizontal “scrolling” design altogether. You can still implement the See All Items category link, while allowing the horizontal content to load in dynamically. Balance is always key.

Not All At Once, Please!

So what exactly do I mean by dynamically loading in horizontal content?

By loading the row content in piece-by-piece, initial loads for users will be faster and subsequent list items will load quickly as well (since they would limit to a set default - in this case only 4).

Final Improvements

Below you can find a quick, static version of this concept. Here you can see the horizontal list items, along with their corresponding See All Items links. You’ll have to use your imagination for how new items would load once you each the end of a horizontal row. (I’m too lazy to spend extra time building out that functionality for a hypothetical blog post)

See the Pen Bidirectional Scrolling CSS by Bradley Taunt (@bradleytaunt) on CodePen.