Add framer motion

This commit is contained in:
1ilit
2024-01-18 09:21:30 +02:00
parent 58bafcfcaf
commit df9a3f8089
4 changed files with 89 additions and 11 deletions

30
src/animations/Reveal.jsx Normal file
View File

@@ -0,0 +1,30 @@
import { useRef, useEffect } from "react";
import { motion, useInView, useAnimation } from "framer-motion";
export default function Reveal({ children }) {
const ref = useRef(null);
const isInView = useInView(ref, { once: true });
const mainControls = useAnimation();
useEffect(() => {
if (isInView) {
mainControls.start("visible");
}
}, [isInView, mainControls]);
return (
<div ref={ref}>
<motion.div
variants={{
hidden: { opacity: 0, y: 75 },
visible: { opacity: 1, y: 0 },
}}
initial="hidden"
animate={mainControls}
transition={{ duration: 0.6 }}
>
{children}
</motion.div>
</div>
);
}