AOS를 이용한 Parallax Scrolling
패럴랙스 스크롤링은 웹사이트의 요소들이 서로 다른 속도로 움직이는 것
- 레이어별 스크롤 속도를 다르게 하여 입체감을 주는 디자인 기법
- 게임, 애니메이션 등에서 주로 사용되던 기법으로 인터랙티브한 웹사이트를 만들 때 사용
- javascript, css, 라이브러리 등을 이용하여 구현
AOS(Animate On Scroll) 란?
스크롤에 따라 요소에 애니메이션을 적용하는 라이브러리로 패럴랙스 스크롤링을 구현할 수 있음
- aos : https://michalsnik.github.io/aos/
- v1 : https://github.com/michalsnik/aos
- v2 : https://github.com/michalsnik/aos/tree/v2
AOS 설치
- 태그 내에 AOS 라이브러리를 추가
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
- 태그 닫는 태그 바로 위에 AOS 라이브러리를 추가
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script>
AOS.init()
</script>
AOS 초기화
AOS.init()
: AOS를 초기화AOS.init({})
: AOS를 초기화하면서 옵션을 설정 (https://github.com/michalsnik/aos?tab=readme-ov-file#1-initialize-aos)
AOS 옵션
offset
: 요소가 화면에 보이기 전에 애니메이션이 시작되는 위치delay
: 애니메이션이 시작되는 지연 시간duration
: 애니메이션의 지속 시간easing
: 애니메이션의 가속도once
: 애니메이션을 한 번만 실행anchor-placement
: 애니메이션이 실행되는 기준점
AOS 사용
- AOS 효과를 각 요소에 적용
- AOS 효과를 적용할 요소에
data-aos
속성을 추가
<div data-aos="fade-up">Fade Up</div>
AOS 효과를 적용할 요소에 추가할 수 있는 속성
data-aos
: 애니메이션 효과data-aos-offset
: 요소가 화면에 보이기 전에 애니메이션이 시작되는 위치data-aos-delay
: 애니메이션이 시작되는 지연 시간data-aos-duration
: 애니메이션의 지속 시간data-aos-easing
: 애니메이션의 가속도data-aos-mirror
: 애니메이션을 반복data-aos-once
: 애니메이션을 한 번만 실행data-aos-anchor-placement
: 애니메이션이 실행되는 기준점
<div
data-aos="fade-up"
data-aos-offset="200"
data-aos-delay="50"
data-aos-duration="1000"
data-aos-easing="ease-in-out"
data-aos-mirror="true"
data-aos-once="false"
data-aos-anchor-placement="top-center"
></div>
위와 같이 속성을 추가하면 스크롤에 따라 요소에 애니메이션 효과가 적용됩니다. 하지만 옵션이 너무 많아서 코드가 복잡해질 수 있습니다. 반복되는 코드를 줄이기 위해 자바스크립트로 옵션을 설정할 수 있습니다.
- AOS 초기화 시 옵션 설정
<div data-aos="fade-up">Fade Up</div>
AOS.init({
offset: 200,
delay: 50,
duration: 1000,
easing: 'ease-in-out',
mirror: true,
once: false,
anchorPlacement: 'top-center',
})
AOS 예제
'Front > Library' 카테고리의 다른 글
GSAP을 이용한 Parallax Scrolling (0) | 2024.05.29 |
---|---|
Javascript를 이용한 Parallax Scrolling (0) | 2024.05.29 |
CSS를 이용한 Parallax Scrolling (0) | 2024.05.28 |
스크롤 트리거 (Parallax Scrolling) 구현하기 (0) | 2024.01.06 |
splidejs 슬라이드 핵심 정리 (0) | 2023.09.11 |