Skip to content

Instantly share code, notes, and snippets.

@livemehere
Created March 27, 2024 05:54
Show Gist options
  • Save livemehere/9b918c039cc0798a768e9ea7a4a3c56b to your computer and use it in GitHub Desktop.
Save livemehere/9b918c039cc0798a768e9ea7a4a3c56b to your computer and use it in GitHub Desktop.
Trigger on scroll or touch move
import { useEffect } from 'react';
const useScrollWatcher = () => {
useEffect(() => {
let timer: number;
const handler = (e: Event) => {
timer && clearTimeout(timer);
document.body.classList.add('scrollShow');
timer = window.setTimeout(() => {
document.body.classList.remove('scrollShow');
}, 1000);
};
window.addEventListener('touchmove', handler);
window.addEventListener('wheel', handler);
return () => {
window.removeEventListener('wheel', handler);
window.removeEventListener('touchmove', handler);
timer && clearTimeout(timer);
};
}, []);
};
export default useScrollWatcher;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment