If you, as a web developer, find yourself deciding to hijack my scroll events and do weird weird things with them, immediately walk into the sea and never return.
Example: datedropper
Look at this disaster. To begin with, I need to keep scrolling up and down to find the information I want–much of the page is empty space–and then you have the gall to put your big sticky hands all over my scrolling? You’ve made it smooth scrolling, something required by half-wits who have no understanding of object permanence and lose things if they jump three lines away. You not only decided that I most definitely wanted smooth scrolling, but you have also decided that I shouldn’t be able to scroll quickly. I use a trackball with a huge scroll wheel and I can cover almost any page with one rotation of it. Not this page. Go on, try and whip your scroll wheel fast, seems like an awful lot of those scroll events fell into the void doesn’t it?
I wanted to actually quantify how much scrolling you have taken from me, so I slapped together a test page using the libraries in question. Results:
Scrolling | Pixels scrolled after 1 rotation1 |
---|---|
Normal | 8500 |
Smooth | 2100 |
You have taken three quarters of my scrolling ability. For me to get to the bottom of your 4804 pixel high page, I have to scroll the equivalent of 20,000 pixels. Do one.
So, why do this? Is there some reason for doing this to my scroll events that I am generating with my hands? No. There is no reason. It’s utterly pointless. You can bung a return at the start of the scroll event handler function and everything else on the page is fine. The smooth scrolling for the links at the top is fine as that’s done by a TweenMax plugin, the same one the Scroll Destroyer uses to do it’s dark business. There is no point to the smooth scrolling at all. Form over function and all that.
I don’t mean to pick on this page specifically, I’ve seen this in other places, this one just took me over the edge. Don’t give me false smooth scrolling, don’t make my vertical scrolling move things horizontally and don’t make my scrolling like I’m looking at a powerpoint. Don’t hijack my scrolling.
And relax.
Rounded to the nearest hundred. ↩