πŸš€Β Β Astro β€” Scroll observer


Viewport scroll position watcher which binds data attributes to `body` for further CSS usage. JS scroll event is properly throttled for performance economy.

Keywords:

  • astro
  • astro-component
  • scroll
  • observer
  • html
  • viewport
  • css
  • toggle
  • scrolling
  • position
  • document
  • watch
  • window

Component live demo


Scroll viewport!
Current : ℹ️  

πŸš€Β Β Astro β€” Scroll observer

Viewport scroll position watcher which binds data attributes to body for further CSS usage.
JS scroll event is properly throttled for performance economy.

Three areas are handled : Top, Bottom, and everything in between.
Some margins are applied on these.

Also, viewport scrollbar detection is made available.

πŸ“¦Β Β Installation

pnpm i @julian_cataldo/astro-scroll-observer

πŸ› Β Β Usage

---
import ScrollObserver from '@julian_cataldo/astro-scroll-observer/ScrollObserver.astro';
// ...
---
<!-- ... -->
<head>
  <!-- Place component inside HEAD tag -->

  <ScrollObserver />

  <!-- ... -->
</head>
<!-- ... -->

Example usage with SCSS:

nav {
  // ...navbar styles…
  // See live demo for complete example

  opacity: 0;
  transform: translateY(-100%);
  transition: all 1s;

  [data-is-scrolling-up='true'] & {
    opacity: 1;
    transform: translateY(0);
    &::after {
      content: 'Is scrolling up…';
    }
  }
  [data-is-top='true'] & {
    opacity: 1;
    transform: translateY(0);
    &::after {
      content: 'Is top';
    }
  }
  [data-is-bottom='true'] & {
    opacity: 1;
    transform: translateY(0);
    &::after {
      content: 'Is bottom';
    }
  }
}

πŸŽ‰Β Β Result

<!-- ... -->
<body
  data-is-scrolling-up="true|false"
  data-is-bottom="true|false"
  data-is-top="true|false"
  data-has-scroll="true|false"
>
  <!-- ... -->
</body>
<!-- ... -->

Changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.10.14 (2022-07-24)

Bug Fixes

0.10.13 (2022-07-18)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.12 (2022-06-28)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.11 (2022-06-26)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.10 (2022-06-25)

Bug Fixes

  • prefer template strings (8c552ee)

0.10.9 (2022-06-24)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.8 (2022-06-22)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.7 (2022-06-21)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.6 (2022-06-20)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.5 (2022-06-20)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.4 (2022-06-19)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.3 (2022-06-19)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.2 (2022-06-19)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.1 (2022-06-19)

Note: Version bump only for package @julian_cataldo/astro-scroll-observer

0.10.0 (2022-06-19)

Features

  • init app scroll observer component (4df9395)
...