react-use-sticky
Version:
Observe when DOM element enters or leaves sticky state
62 lines (45 loc) • 1.02 kB
Markdown
A react hook for observing/watching `position: sticky` state on refs
`npm i react-use-sticky`
`useSticky` returns a pair of values, the ref to observe/watch and the current sticky state of the ref.
```jsx
import { useSticky } from 'react-use-sticky';
function HeaderBar() {
const [headerBarRef, sticky] = useSticky();
const style = {
position: 'sticky',
top: 0,
background: sticky ? 'green' : 'red',
};
return (
<nav ref={headerBarRef} style={style}>
HeaderBar
</nav>
);
}
export default HeaderBar;
```
Typescript with generic
```tsx
import { useSticky } from 'react-use-sticky';
function HeaderBar() {
const [headerBarRef, sticky] = useSticky<HTMLDivElement>();
const style = {
position: 'sticky',
top: 0,
background: sticky ? 'green' : 'red',
} as const;
return (
<div ref={headerBarRef} style={style}>
HeaderBar
</div>
);
}
export default HeaderBar;
```
```bash
npm run build
```