๐ฎ
11์ผ์ฐจ
Part 1. HTML/CSS/JS๋ก ๋ง๋๋ ์คํ๋ฒ ์ค ์น์ฌ์ดํธ
Ch 10. ์คํ๋ฒ ์ค ์์
Ch 10. ์คํ๋ฒ ์ค ์์
์ฃผ์
- ํค๋์ ๋๋กญ๋ค์ด ๋ฉ๋ด
์ฃผ์ ๋ด์ฉ
์๋กญ๊ฒ ์๊ฒ ๋ ๋ด์ฉ
top์ด๋ bottom ์์ฑ์ ์ฌ์ฉํ์ง ์์ ์์ง ์์น ๊ฐ์ด ์๋ค๋ฉด, ์์์ ์๋ ์์น๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
๋ง์ฝ position: absolute;๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, (์์น์) ๋ถ๋ชจ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ฏ๋ก ํ๋ฉด์ ๋ทฐํฌํธ ์ข์ฐ ๋๊น์ง ๋์ด๋ ์ ์๊ฒ ๋๋ค.
๐ BEM(Block Element Modifier) : HTML ํด๋์ค ์์ฑ์ ์๋ช ๋ฒ
- ์์__์ผ๋ถ๋ถ
- ์์--์ํ
์ผ๋ฐ์ ์ผ๋ก block ์์๋ width๋ฅผ ์ต๋ํ ๋์ด๋๋ ค๊ณ ํ์ง๋ง, position fixed์ absolute ์์๋ ์ต์ํ ์ค์ด๋ค๋ ค๊ณ ํ๋ค.
๐ Lodash JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ์คํฌ๋กค์ด ์ง๋์น๊ฒ ์์ฃผ ๋ฐ์ํ๋ ๊ฒ์ ์กฐ์ (throttle, ์ผ๋ถ๋ฌ ๋ถํ๋ฅผ ์ค)
https://cdnjs.com/libraries/lodash.js
ํ๋ฉด์ด ์คํฌ๋กค ๋ ๋ ์คํ๋๋ ํจ์์ ๊ฐ์๋ฅผ _.throttle()์ด๋ผ๋ ๋ฉ์๋ ๊ธฐ๋ฅ์ ํตํด์ ์ผ์ ์๊ฐ์ ํ ๋ฒ์ฉ๋ง ์คํ๋๋๋ก ์ ํ์ ๊ฑด๋ค. => ์ฑ๋ฅ up
๐ GSAP JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
https://cdnjs.com/libraries/gsap
๐ Lodash, GSAP ์์ค ์ฝ๋
//? ํ์ด์ง ์คํฌ๋กค์ ๋ฐ๋ฅธ ์์ ์ ์ด
// ํ์ด์ง ์คํฌ๋กค์ ์ํฅ์ ๋ฐ๋ ์์๋ค์ ๊ฒ์!
const badgeEl = document.querySelector("header .badges");
const toTopEl = document.querySelector("#to-top");
// ํ์ด์ง์ ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐ!
// ์คํฌ๋กค์ด ์ง๋์น๊ฒ ์์ฃผ ๋ฐ์ํ๋ ๊ฒ์ ์กฐ์ (throttle, ์ผ๋ถ๋ฌ ๋ถํ๋ฅผ ์ค)
window.addEventListener(
"scroll",
_.throttle(function () {
// ํ์ด์ง ์คํฌ๋กค ์์น๊ฐ 500px์ด ๋์ผ๋ฉด.
if (window.scrollY > 500) {
// Badge ์์ ์จ๊ธฐ๊ธฐ!
gsap.to(badgeEl, 0.6, {
opacity: 0,
display: "none",
});
// ์๋จ์ผ๋ก ์คํฌ๋กค ๋ฒํผ ๋ณด์ด๊ธฐ!
gsap.to(toTopEl, 0.2, {
x: 0,
});
// ํ์ด์ง ์คํฌ๋กค ์์น๊ฐ 500px์ด ๋์ง ์์ผ๋ฉด.
} else {
// Badge ์์ ๋ณด์ด๊ธฐ!
gsap.to(badgeEl, 0.6, {
opacity: 1,
display: "block",
});
// ์๋จ์ผ๋ก ์คํฌ๋กค ๋ฒํผ ์จ๊ธฐ๊ธฐ!
gsap.to(toTopEl, 0.2, {
x: 100,
});
}
}, 300)
);
๋๋์
์ ์ฉํ JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์๊ฐ ์ ์์๋ค. ์ด๋ฐ ๊ฐ์์ ๋์๋ css reset cdn์ ๊ฐ์ธ์ ์ผ๋ก ์ ์ฉ๋์ง ์๋ ๋ถ๋ถ์ด ๋ง์ ๊ฑฐ ๊ฐ์์..! ๊ฐ์ธ ํ๋ก์ ํธํ ๋๋ ์ฌ์ฉ ์ ํ ๊ฒ ๊ฐ๋ค.
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค.
#ํจ์คํธ์บ ํผ์ค
#ํจ์บ ์ฑ๋ฆฐ์ง
#์ง์ฅ์ธ์ธ๊ฐ
#์ง์ฅ์ธ์๊ธฐ๊ณ๋ฐ
#ํจ์คํธ์บ ํผ์คํ๊ธฐ
#ํ_๋ฒ์_๋๋ด๋_ํ๋ก ํธ์๋_๊ฐ๋ฐ_์ด๊ฒฉ์ฐจ_ํจํค์ง_Online
'๐ฌ > ใ ใ ใ ใ ใ ใ ์ฑ๋ฆฐ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํจ์คํธ ์บ ํผ์ค ์ฑ๋ฆฐ์ง 13์ผ์ฐจ (0) | 2022.02.05 |
---|---|
ํจ์คํธ ์บ ํผ์ค ์ฑ๋ฆฐ์ง 12์ผ์ฐจ (0) | 2022.02.04 |
ํจ์คํธ ์บ ํผ์ค ์ฑ๋ฆฐ์ง 10์ผ์ฐจ (0) | 2022.02.03 |
ํจ์คํธ ์บ ํผ์ค ์ฑ๋ฆฐ์ง 9์ผ์ฐจ (0) | 2022.02.01 |
ํจ์คํธ ์บ ํผ์ค ์ฑ๋ฆฐ์ง 8์ผ์ฐจ (0) | 2022.01.31 |