[React] Framer-Motion으로 슬라이드 만들기(기본편)

Framer-Motion

공식 홈페이지: https://www.framer.com/motion/
리액트용 모션 라이브러리입니다.
이것저것 세련된 애니메이션 효과들을 쉽게 사용할 수 있습니다.

설치

npm install framer-motion

Import

import { motion } from "framer-motion"

기본 사용방법

motion이 들어갈 요소를 지정하기

HTML, SVG 요소에 motion을 붙여줍니다.

<motion.div animate={{ scale: 0.5 }} />

styled-component를 사용하는 경우에는 styled(motion.html요소)로 작성합니다.

  const Box = styled(motion.div)`...`;

애니메이션 만들기

  • motion 컴포넌트의 prop을 넣어서 애니메이션을 적용합니다. (prop 값은 맘대로 정해도됨)
  • initial : 애니메이션이 들어가기 전 초기상태
  • animate : 애니메이션 효과
  • variants : initialanimate의 상태를 정리해놓은 오브젝트입니다.

https://www.framer.com/docs/transition/ 로 가면 다양한 애니메이션 효과들이 있습니다.

const variants = {
  hidden: { opacity: 0 },
  visible: { opacity: 1 },
}

return (
  <motion.div
    initial="hidden" 
    animate="visible"
    variants={variants}
  />
)

슬라이드를 만들자

임시 이미지를 넣은 데모 버전입니다. 전체 코드는 여기서 봐주세요❤