I'm working on a web project that has animations and page changes on the scroll ( specifically, scroll direction ) and I've been looking for multiple possible good and reliable solutions.
I've been detecting the scroll direction by detected the window's scrollY
with the user's previously saved scrollY
that I have saved in a variable. The only problem is that the scroll
event doesn't fire when at the top or the bottom of page, even though the content is all absolute/fixed positioned.
I want to turn to the wheel
event because of its deltaY
values from the event, and it still fires when at the top of bottom of the page so I can remove the scrollbar and keep the body of the page 100vh
.
The Mozilla dev docs say:
Don't confuse the wheel event with the scroll event. The default action of a wheel event is implementation-specific, and doesn't necessarily dispatch a scroll event. Even when it does, the
delta*
values in the wheel event don't necessarily reflect the content's scrolling direction. Therefore, do not rely on the wheel event'sdelta*
properties to get the scrolling direction. Instead, detect value changes ofscrollLeft
andscrollTop
of the target in thescroll
event. (https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event)
And I'm also curious if the wheel
event will work correctly on mobile with touch?
Here's a good example of what I'm trying to replicate: https://reed.be There is no scrollbar, yet things still happen based on your scrolling.
CanIuse shows full compatibility of the wheel
event with modern browsers, and some older versions.
see here -> https://caniuse.com/#feat=mdn-api_wheelevent
I've found a solution that references the wheel
event (How to determine scroll direction without actually scrolling), though my question still applies -
How reliable is the wheel
event across devices and browsers, including mobile?
I am limited to my own current version browsers and android devices for testing.