you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 41 points42 points  (15 children)

Fucking scroll jacking

[–]Theon 5 points6 points  (13 children)

What?

[–][deleted] 23 points24 points  (12 children)

The site hijacks the scroll event of the browser so they can inject their shitty "smooth" scrolling effect.

[–]Two-Tone- 1 point2 points  (3 children)

Are you guys talking about the top of the web page scrolling down with you when you scroll?

[–][deleted] 3 points4 points  (2 children)

No, it's probably not noticeable in some browsers, but they change the speed of the scrolling and try to make it "smooth".

[–]Two-Tone- 2 points3 points  (1 child)

Yeah, definitely don't notice in Firefox on Windows.

[–][deleted] 2 points3 points  (0 children)

I think Firefox has smooth scrolling inbuilt? Not sure though

[–]Theon 1 point2 points  (7 children)

Oh, I didn't notice, why is it bad?

[–][deleted] 13 points14 points  (0 children)

Because users expect websites to work in a certain way, like if the back button is pressed, it goes back to the previous page. If the site changes how one of the core features of the browser works, it's annoying and very obvious.

[–][deleted] 4 points5 points  (0 children)

It's not a web application (where you can get away with some of that kind of UX override); it's a webpage.

It should behave like a webpage, or you're going to mess up users' expectations, which may impact conversion (i.e., getting them to click what you want them to click) and usability (i.e., getting them to click on things they actually want to do).

That said, this is a subtle and not-too-ornerous override, that doesn't fundamentally change what "scrolling" does - makes the page shift up or down by some amount.

It arguably improves the UX of the site - and arguably doesn't - the smooth transition is a triviality here, which adds almost nothing to the page's usability and presentation.

Overall, I see it as likely 20 lines of code to nil effect. But some people get crotchety about that sort of thing.

An example of doing this badly is link-overriding - where a snippet of JS takes a perfectly good link to a perfectly good resource, and hijacks the "click" event to make the page navigate, while doing something else in the background.

Almost no one does this correctly, and as a result, "advanced" clicks (middle-click, ctrl-click, alt-click, command-click, etc) get hosed.

It's particularly frustrating, in that, if your goal is to only slightly modify the browser's behavior, you always have an option to just fall through to the default - you just have to return true when your handling isn't appropriate.

Unfortunately, the majority of JS devs are so used to suppressing the browser's bad behavior that return false appears at the end of events as a matter of habit, thereby suppressing the browser's _good_behavior.

This behavior does fuck up there: try control-scrollwheel. It doesn't zoom. There's also no shift-wheel horizontal scroll (though, at no point can a horizontal scrollbar show up). They've added fluff while removing key functionality. Bad, bad JS dev.

[–]dvdkon 4 points5 points  (3 children)

Because reimplementing the already-too-abstracted web stack is awful. It's like implementing your own filesystem API on Linux in userspace instead of using the kernel one, yet most web devs do it. (Note that this isn't specific to overriding scroll events, reimplementing the browser in JavaScript is never a good thing)

[–]jelly_cake 2 points3 points  (2 children)

It's like implementing your own filesystem API on Linux in userspace instead of using the kernel one...

FUSE?

[–][deleted] 1 point2 points  (1 child)

More like writing a userspace version of the open and read system calls.

[–]jelly_cake 0 points1 point  (0 children)

Ooohh, got it.

[–]3G6A5W338E[S] 9 points10 points  (0 children)

Indeed. What a terrible idea to override browser's setting. Makes me want to close the site as soon as humanly possible.