Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save realtomaszkula/5e4cffd4a457c98dff83c33ca78d717e to your computer and use it in GitHub Desktop.
Save realtomaszkula/5e4cffd4a457c98dff83c33ca78d717e to your computer and use it in GitHub Desktop.
const scroll$ = fromEvent(window, 'scroll').pipe(
throttleTime(10),
map(() => window.pageYOffset),
pairwise(),
map(([y1, y2]): Direction => (y2 < y1 ? Direction.Up : Direction.Down)),
distinctUntilChanged(),
share()
);
const scrollUp$ = scroll$.pipe(
filter(direction => direction === Direction.Up)
);
const scrollDown$ = scroll$.pipe(
filter(direction => direction === Direction.Down)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment