Skip to content

Commit

Permalink
Animate Header shadow on scroll (#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
imse-ty committed Jun 18, 2021
1 parent a23e3bf commit 3494d28
Showing 1 changed file with 29 additions and 2 deletions.
31 changes: 29 additions & 2 deletions components/header.js
Expand Up @@ -2,7 +2,6 @@ import { useEffect, useState } from 'react';
import { useRouter } from 'next/router';
import { motion } from 'framer-motion';
import Link from 'next/link';
import { useState } from 'react';
import { FaBars } from 'react-icons/fa';
import ImsetyWordmark from '../public/imsety-wordmark.svg';

Expand Down Expand Up @@ -90,8 +89,36 @@ function Navigation() {
}

export default function Header() {
const [hasShadow, setHasShadow] = useState(false);

useEffect(() => {
const handleScroll = () => {
setHasShadow((hasShadow) => {
if (!hasShadow && window.scrollY > 113) {
return true;
}

if (hasShadow && window.scrollY < 2) {
return false;
}

return hasShadow;
});
};

window.addEventListener('scroll', handleScroll);

return () => window.removeEventListener('scroll', handleScroll);
}, []);

return (
<header className="sticky z-20 top-0 py-4 md:py-10 bg-imsetyWhite dark:bg-imsetyBlack dark:bg-opacity-75 dark:backdrop-filter backdrop-blur">
<header
className={`
sticky z-20 top-0 py-4 md:py-10 bg-imsetyWhite dark:bg-imsetyBlack dark:bg-opacity-75 dark:backdrop-filter backdrop-blur transition-shadow duration-500
${hasShadow ? 'shadow-xl' : ''}
`}
>
<div className="flex items-center justify-between container mx-auto">
<Link href="/">
<a>
Expand Down

0 comments on commit 3494d28

Please sign in to comment.