You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This isn't technically an issue with the library, but I couldn't find a more appropriate place for my questions. I hope you don't mind me asking them here.
I'm trying to port the scroll-chain solution used here into a project of my own which doesn't use Vue. I think I have everything replicated properly, but I'd like to understand a little more about how the internals of this tool work so I can write up some good unit tests.
If you have the time, I'd love a bit more insight. I think the questions below should cover everything I'd like to understand a bit better:
It appears to me that touchmove events are only ever defaultPrevented if the very first touchmove event would drag the scroller past the minimum or maximum scroll offset. Is this correct? Does this behavior come with any caveats?
It appears to me that once the first touchmove event is defaultPrevented, all subsequent touchmove events in the gesture are also defaultPrevented, regardless of the direction of the gesture. Is this required to deal with a particular browser's scroll-chaining implementation? Or is it an oversight or a deliberate simplification?
What's the reason for adding an extra 0.5 pixels to the scrollLeft and scrollTop values?
It appears that an axis is marked as 'significant' if the user dragged at least twice as many pixels along the significant axis compared to the insignificant axis. Is this a deliberate choice and if so, what's the reason for it?
I noticed the script tries to prevent scroll-chaining by calling preventDefault on specific wheel/touch events as well as by applying the overscroll-behavior css style. Is there a reason for using both strategies rather than only using one or the other? Are there notable limitations to either implementation that are worth being aware of?
Thanks for taking the time to write this tool and I look forward to your feedback.
The text was updated successfully, but these errors were encountered:
This isn't technically an issue with the library, but I couldn't find a more appropriate place for my questions. I hope you don't mind me asking them here.
I'm trying to port the scroll-chain solution used here into a project of my own which doesn't use Vue. I think I have everything replicated properly, but I'd like to understand a little more about how the internals of this tool work so I can write up some good unit tests.
If you have the time, I'd love a bit more insight. I think the questions below should cover everything I'd like to understand a bit better:
It appears to me that touchmove events are only ever defaultPrevented if the very first touchmove event would drag the scroller past the minimum or maximum scroll offset. Is this correct? Does this behavior come with any caveats?
It appears to me that once the first touchmove event is defaultPrevented, all subsequent touchmove events in the gesture are also defaultPrevented, regardless of the direction of the gesture. Is this required to deal with a particular browser's scroll-chaining implementation? Or is it an oversight or a deliberate simplification?
What's the reason for adding an extra 0.5 pixels to the scrollLeft and scrollTop values?
It appears that an axis is marked as 'significant' if the user dragged at least twice as many pixels along the significant axis compared to the insignificant axis. Is this a deliberate choice and if so, what's the reason for it?
I noticed the script tries to prevent scroll-chaining by calling preventDefault on specific wheel/touch events as well as by applying the overscroll-behavior css style. Is there a reason for using both strategies rather than only using one or the other? Are there notable limitations to either implementation that are worth being aware of?
Thanks for taking the time to write this tool and I look forward to your feedback.
The text was updated successfully, but these errors were encountered: