์คํ๋ฒ ์ค ์ ์ญ๋ฐฐ์ง(GSAP) ์์์ ์์ฑ ๋ชจ์ต
์คํ๋ฒ ์ค ์ ์ญ๋ฐฐ์ง(GSAP) HTML
์๋๋ ๋ฐฐ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ HTML์ด๋ค.
<div class="badges">
<div class="badge">
<img src="./images/badge1.jpg" alt="Badge" />
</div>
<div class="badge">
<img src="./images/badge2.jpg" alt="Badge" />
</div>
</div>
์ด html์ css๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ css ์์ฑ์
badges์ badge๋ฅผ ๋ง๋ค๋ฉด ๋๋ค.
์คํ๋ฒ ์ค ์ ์ญ๋ฐฐ์ง(GSAP) CSS
์๋๋ถํฐ๋ CSS๋ฅผ ์ดํด๋ณผ ๊ฒ์ด๋ค.
header .badges {
position: absolute;
top: 132px;
right: 12px;
}
badges ํด๋์ค์์๋ ๋ฐฐ์ง์ ์์น๋ฅผ ์ก์์ค ๊ฒ์ด๋ค.
๋ถ๋ชจ์์์ธ header๋ฅผ ๊ธฐ์ค์ผ๋ก ์์์ 132px๋งํผ ์ค๋ฅธ์ชฝ์์ 12px๋งํผ ๊ฐ์ ๋ฐฐ์ง๋ฅผ ์์น์ํจ๋ค.
์ด์ ๋ฐฐ์ง๋ฅผ ๊พธ๋ฉฐ๋ณผ ๊ฒ์ด๋ค.
header .badges .badge {
border-radius: 10px;
overflow: hidden;
margin-bottom: 12px;
box-shadow: 4px 4px 10px rgba(0,0,0,.15);
cursor: pointer;
}
badges ํด๋์ค์์๋ ๋ฐฐ์ง์ ๋ชจ์์ ์ก์์ค ๊ฒ์ด๋ค.
๋ฐฐ์ง์ ๋๋ถ๋ถ์ ๋ฅ๊ธ๊ฒ ๋ง๋ค์ด์ฃผ๊ณ
overflow: hidden์ ๋์น๋ ๋ถ๋ถ์ด ์งค๋ ค์ ๋ณด์ด์ง ์๊ฒ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
๋ฐฐ์ง๊ฐ ๋ถ์ด์๋ ๊ฒ์ ๋ผ์ฃผ๊ธฐ ์ํด ์๋ ์ธ๋ถ์ฌ๋ฐฑ์ 12px๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ค๋ ๊ทธ๋ฆผ์๋ฅผ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ค์ ๋ง์ฐ์ค ์ปค์๋ฅผ ๊ฐ์ ธ๋ค๋๋ฉด ์๊ฐ๋ฝ ์ปค์๊ฐ ๋์ฌ ์ ์๋๋ก ํ๋ค.
์คํ๋ฒ ์ค ์ ์ญ๋ฐฐ์ง(GSAP) JS ์ ๋๋ฉ์ด์ ํจ๊ณผ
์ด๋ฒ ๋ฐฐ์ง๋ฅผ ๋ง๋ค๋ฉด์ ์ ์ผ ์ค์ํ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ดํด๋ณผ ๊ฒ์ด๋ค.
์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ JS๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ JS๋ฅผ ์์๋ณผ ๊ฒ์ด๋ค.
JS๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์๋
2๊ฐ์ง ์คํฌ๋ฆฝํธ ํ๊ทธ๊ฐ ํ์ํ๋ค.
๊ตฌ๊ธ์ lodash cdn์ ๊ฒ์ํ์ฌ ์๋ ์ฌ์ดํธ๋ก ์ ์ํ๋ค.
https://cdnjs.com/libraries/lodash.js
lodash.js - Libraries - cdnjs - The #1 free and open source CDN built to make life easier for developers
A utility library delivering consistency, customization, performance, & extras. - Simple. Fast. Reliable. Content delivery at its finest. cdnjs is a free and open-source CDN service trusted by over 12.5% of all websites, serving over 200 billion requests e
cdnjs.com
์ด ์ฌ์ดํธ์์ ์ฃผํฉ์ ๋ฒํผ์ ํ๊ทธ๋ฒํผ์ ๋๋ฅด๋ฉด ์นดํผ๊ฐ ๋๋ค.
์ด ๋ณต์ฌํ ์ฝ๋๋ฅผ index.html์ ์ฎ๊ธด๋ค.
์ด๊ฒ์ ์ฌ์ฉํ๋ ์ด์ ๋ ์์ญ๊ฐ์ ํจ์ ๋์์คํ์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌ/ํํฐ/์์ธํ ์ ์๊ฒ ๋์์ฃผ๋ ์คํ์์ค์ด๋ค.
์ฌ์ฉํ๋ฉด ์คํฌ๋กค์ ๊ด๋ฆฌํ ์ ์๋ค.
์๋ ์ฝ๋์ scrollY๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ค๋ค.
๋ํ ๊ตฌ๊ธ์ gsap cdn์ ๊ฒ์ํ์ฌ ๋งจ ์์ ๋์ค๋ ์ฌ์ดํธ๋ฅผ ์ ์ํ๋ค.
https://cdnjs.com/libraries/gsap
gsap - Libraries - cdnjs - The #1 free and open source CDN built to make life easier for developers
GSAP is a JavaScript library for building high-performance animations that work in **every** major browser. Animate CSS, SVG, canvas, React, Vue, WebGL, colors, strings, motion paths, generic objects...anything JavaScript can touch! No other library delive
cdnjs.com
gsap์ scrollY์ ๊ฐ์ ๋ฐ๋ผ ๋ฐฐ์ง๊ฐ ๋ณด์ด๊ณ ์๋ณด์ด๊ณ ๋ฅผ ๊ตฌํํ ์ ์๊ฒ ๋์์ฃผ๋ ์คํ์์ค์ด๋ค.
์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผํฉ์ ๋ฒํผ์ ํ๊ทธ ๋ฒํผ์ ๋๋ฌ ๋ณต์ฌํด์ฃผ๊ณ index.html์ ๋ณต์ฌํ๋ค.
์ ์ฝ๋๋ฅผ index.html์ ๋ณต์ฌํด์ฃผ๋ฉด ์๋ ์ฝ๋์ ๊ฐ๋ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js" integrity="sha512-H6cPm97FAsgIKmlBA4s774vqoN24V5gSQL4yBTDOY2su2DeXZVhQPxFK4P6GPdnZqM9fg1G3cMv5wD7e6cFLZQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script defer src="./js/main.js"></script>
lodash, gsap ์คํ์์ค ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ฉ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์์ ๋ณต์ฌํด์ค๋ค.
์ฐ๋ฆฌ๊ฐ ์์ฑํ ํ์ผ์ ์ต๋ํ ์๋์ชฝ์ ๋์์ค๋ค.
์ด๋ฒ์๋ ๋ฐฐ์ง ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ดํด๋ณผ ๊ฒ์ด๋ค.
const badgeEl = document.querySelector('header .badges');
window.addEventListener('scroll', _.throttle(function () {
console.log(window.scrollY);
if (window.scrollY > 500){
// ๋ฐฐ์ง ์จ๊ธฐ๊ธฐ
// gsap.to(์์, ์ง์์๊ฐ, ์ต์
);
gsap.to(badgeEl, .6, {
opacity: 0,
display: 'none'
});
} else {
// ๋ฐฐ์ง ๋ณด์ด๊ธฐ
gsap.to(badgeEl, .6, {
opacity: 1,
display: 'block'
});
}
}, 300));
// _.throttle(ํจ์, ์๊ฐ)
badgeEl์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ header .badges๋ฅผ ์ ํํด์ค๋ค.
addEventListener์ ์ฌ์ฉํ์ฌ ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ฉด _.throttle๋
๋์ผ ์ด๋ฒคํธ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์ํ๋๋ ๊ฒฝ์ฐ์ ์์๋ก ์ค์ ํ ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ(ms)์ผ๋ก ์ฝ๋ฐฑ ํจ์์ ์คํ์ ๋ณด์ฅํ๋ค.
window.scrollY๊ฐ 500 ์ด์์ด๋ฉด ํฌ๋ช ๋๋ฅผ 0์ผ๋ก ํ์ฌ ์์๊ฐ ๋ณด์ด์ง ์๊ฒ ํ๊ณ
๋์คํ๋ ์ด๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ ํ๋ค.
gsap์ ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋๋ฉ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
0.6์ด ๋์ ์์๊ฐ ์ฌ๋ผ์ง๋ ํจ๊ณผ๋ฅผ gsap.to๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉํ๋ค.
๋ฐ๋๋ก scrollY๊ฐ 500 ์ดํ๋ฉด ํฌ๋ช ๋๋ฅผ 1๋ก ๋ง๋ค๊ณ
๋์คํ๋ ์ด๋ ๋ธ๋ก์ผ๋ก ๋ง๋ค์ด์ ๋ณด์ด๋๋ก ํ๋ค.
์คํ๋ฒ ์ค ์ ์ญ๋ฐฐ์ง(GSAP) ์ต์ข ๊ฒฐ๊ณผ
์๋ ์ฌ์ง์ ๋ณด๋ฉด ๋ฐฐ์ง๊ฐ ์ด๋ป๊ฒ ๋ณํ๋์ง ๋ณผ ์ ์๋ค.
'๐ป Web Develop > โ๏ธ STARBUCKS ๊ฐ๋ฐ์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6. ์คํ๋ฒ ์ค ์์ ์ฌ๋ผ์ด๋ (0) | 2022.02.05 |
---|---|
5. ์คํ๋ฒ ์ค ์์ฐจ์ ์ ๋๋ฉ์ด์ (0) | 2022.02.04 |
3. ์คํ๋ฒ ์ค ๋ฉ์ธ๋ฉ๋ด (0) | 2022.02.03 |
2. ์คํ๋ฒ ์ค ๋ก๊ณ , header, ์๋ธ๋ฉ๋ด, ๊ฒ์ (0) | 2022.02.02 |
1. ๊ฐ๋ฐ ์์ ๋ฐ ๊ธฐ๋ณธ ์ค์ css ์ด๊ธฐํ, ํฐํธ ์ค์ , ์์ด์ฝ ์ค์ (0) | 2022.02.02 |