lenis icon indicating copy to clipboard operation
lenis copied to clipboard

Native scrolling (scrollbar and keyboard) is blocked/prevented during lenis scroll animation

Open thasmo opened this issue 3 years ago • 2 comments

Describe the bug During the lenis scroll animaton, scrolling via scrollbar or keyboard shortcut (scrollbar) is blocked/prevented (by lenis). In other words, the scroll animation, triggered/executed by lenis, can not be interrupted/cancelled by native scrolling via scrollbar or space bar.

Imo when scrolling natively (via scrollbar, spacebar, etc.) the current scroll animation should be cancelled/stopped immediately to give the user control over the scroll experience/behavior.

To Reproduce codepen

thasmo avatar Jan 26 '23 12:01 thasmo

Let me explain how lenis works:

  • Listen to wheel events and prevent the event to block the native scroll.
  • Get the wheel delta value to increase the target value.
  • Animate the scroll to reach the target value.
  • Scroll events (keyboard, grab scrollbar, etc.) catched during this animation time are ignored because there is no way to prevent them, Lenis is only preventing wheel events. And conversely, scroll events catched out of this animation time update scroll value.

So because there is no way to discriminate native scroll events over scroll events triggered by lenis animation, your ask seems impossible. Currently the only way the user can take control over the scrollTo animation is to scroll using MouseWheel

clementroche avatar Feb 03 '23 10:02 clementroche

@clementroche, got it - makes sense; I know the "problem". Wish it would be possible tho. 😅

thasmo avatar Feb 11 '23 14:02 thasmo