scroll-to-top-button.js 794 B

12345678910111213141516171819202122232425262728293031
  1. import { useEffect, useState } from "react";
  2. export default function ScrollToButtonButton() {
  3. const [hasScrollToTopButton, setHasScrollToTopButton] = useState(false);
  4. function toggleScrollTopButton() {
  5. setHasScrollToTopButton(
  6. document.body.scrollTop > 50 || document.documentElement.scrollTop > 50
  7. )
  8. }
  9. useEffect(() => {
  10. window.addEventListener('scroll', toggleScrollTopButton);
  11. return () => {
  12. window.removeEventListener('scroll', toggleScrollTopButton);
  13. }
  14. }, [])
  15. return (
  16. <>
  17. {hasScrollToTopButton && (
  18. <a href="#" className="scroll-top btn-hover">
  19. <i className="lni lni-chevron-up"></i>
  20. </a>
  21. )}
  22. </>
  23. )
  24. }