라이브러리

스크롤 바 내렸을 때 요소가 등장하는 애니메이션 플러그인 Scroll Reveal, Animate On Scroll

2024. 6. 17.
목차

Scroll Reveal

페이지를 스크롤할 때, 특정 요소들이 부드럽게 화면에 나타나거나 사라지는 등의 다양한 애니메이션 효과를 구현할 수 있다. 직관적이고 간단한 API를 제공하여, 원하는 애니메이션을 쉽게 설정하고 적용할 수 있다. 요소가 화면에 나타날 때 페이드 인(fade-in) 효과를 주거나, 특정 방향으로 슬라이드 인(slide-in) 하는 등의 동작을 간단한 코드로 구현할 수 있다. 가벼우면서도 성능이 뛰어나, 다양한 웹사이트에 적용이 가능하다. 또한, 반응형 디자인을 지원하여, 다양한 기기에서 일관된 애니메이션 효과를 제공한다.

wb_incandescent Tip

2버전까지는 무료, 3버전부터는 유료로 사용해야 한다. 무료버전 최상위 버전은 v2.3.2이다.

 

 

 

사용법

라이브러리 추가하기

<head></head> 태그 사이에 입력한다.

<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/scrollReveal.js/2.3.2/scrollReveal.js"></script>
</head>

파일 직접 다운로드하기 https://www.jsdelivr.com/package/npm/swiper

 

html 작성하기

<body></body> 태그 사이에 입력한다

// 단일 사용 (data-sr 필수입력)
<h1 data-sr>Test</h1>
// 여러개 사용 (data-sr에 값을 넣어 요소별로 효과 지정 가능)
<h1 data-sr="enter top over 1.5s wait 0.2s">Test</h1>
<h1 data-sr="move 100px wait 0.4s">Test</h1>
<h1 data-sr="scale down 20% wait 0.6s">Test</h1>

 

js 작성하기

<script></script> 태그 사이, 또는 외부 scipt파일에 입력한다

// 기본
new ScrollReveal();
// 사용자 정의
new ScrollReveal({
enter: 'bottom',
wait: '0.3s',
move: '100px',
over: '1.5s',
scale: { direction: 'up', power: '0%' },
reset: true,
viewFactor: 0.5
});

 

자주쓰는 옵션

enter 애니메이션 시작 위치
('top', 'bottom', 'left', 'right')
move 이동 거리 (px, %)
over 애니메이션 지속 시간 (ms)
wait 애니메이션 시작 전 지연 시간 (ms)
easing 애니메이션 효과 ('ease', 'ease-in', 'ease-in-out', 'ease-out', 'hustle')
scale 크기 변경 (px, %) { direction: 'up', power: '5%' }
rotate 회전 방향 (px, %) { x: 0, y: 0, z: 0 }
opacity 투명도(%) 0
mobile 모바일에서 작동 여부 (true, false)
reset 스크롤할 때마다 애니메이션 재실행 여부 (true, false)
delay 애니메이션 재생시 지연 횟수 ('always', 'onload', 'once')
vFactor 뷰포트에서 요소가 감지되면 트리거 되는 시점 (%)

 

 

 


 

Animate On Scroll

스크롤 이벤트를 기반으로 요소에 애니메이션 효과를 추가할 수 있게 해주는 오픈 소스 라이브러리. 사용자가 페이지를 스크롤할 때 다양한 애니메이션 효과를 간단하게 구현할 수 있다.

 

 

 

사용법

라이브러리 추가하기

<head></head> 태그 사이에 입력한다.

<head>
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
</head>

파일 직접 다운로드하기 https://michalsnik.github.io/aos/

 

html 작성하기

<body></body> 태그 사이에 입력한다

// 단일 사용 (data-aos 필수입력)
<div data-aos="fade-in"></div>
// 여러개 사용 (data-aos-~ 에 값을 넣어 요소별로 효과 지정 가능)
<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>

 

js 작성하기

<script></script> 태그 사이, 또는 외부 scipt파일에 입력한다

// 기본
AOS.init();
// 사용자 정의
AOS.init({
offset: 120,
delay: 0,
duration: 400,
easing: 'ease',
once: false,
mirror: false,
anchorPlacement: 'top-bottom',
});

 

자주쓰는 옵션

offset 원래 트리거 지점으로부터의 오프셋 (px)
delay 애니메이션 시작 전 지연 시간 (ms)
duration 애니메이션 지속 시간 (ms)
easing 애니메이션 효과
('linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-back', 'ease-out-back', 'ease-in-out-back', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart')
once 애니메이션 한번만 실행해야 하는지 여부 (true, false)
mirror 스크롤을 지나가는 동안 요소가 애니메이션화되어야 하는지 여부 (true, false)
anchorPlacement 애니메이션을 트리거해야 하는 창과 관련된 요소의 위치를 정의
('top-bottom', 'top-center', 'top-top', 'center-bottom', 'center-center', 'center-top', 'bottom-bottom', 'bottom-center', 'bottom-top

 

카테고리 다른 글 더보기