๐ฑ ํ๋ด๋ ์ค ํจ๊ณผ : top ๋ฒํผ ๊ตฌํํ๊ธฐ๐ฑ
ํ๋ด๋์ค(parallax) ์์ฐจ๋ ์๋ฏธ๋ก ์ฌ์ฉ์๊ฐ ์คํฌ๋กค๋ง์ ํ ๋ ๋ฐฐ๊ฒฝ๊ณผ ์์๋ง๋ค ์๋ ๋ฐ ํฌ๊ธฐ์ ์ฐจ์ด๋ฅผ ์ฃผ์ด ์
์ฒด์ ์ผ๋ก ๋๊ปด์ง๊ฒ ํ๋ ํจ๊ณผ๋ฅผ ๋งํฉ๋๋ค.
์ด๋ฒ ์๊ฐ์๋ top๋ฒํผ์ ๋๋ฅผ ๋ ์คํฌ๋กค์ด ์ต์๋จ์ผ๋ก ๋ถ๋๋ฝ๊ฒ ์ด๋ํ๋ ํจ๊ณผ๋ฅผ ์ค์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ถ๊ฐ๋ก ๋ฒํผ์ด ๊ฐ์ฅ ํ๋จ์์๋ง ๋ณด์ด๊ฒ ํ๊ณ ๋ฉ๋ด ๋ฒํผ๋ ์คํฌ๋กค์ ๋ด๋ฆด ์ ๋ณด์ด์ง ์๋๋ก ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค ๐
#1. HTML / CSS ์ค์ ํ๊ธฐ
โ๏ธ HTML ๋ณด๊ธฐ
<nav id="parallax__nav">
<ul>
<li class="active"><a href="#section1">๋ฉ๋ด1</a></li>
<li><a href="#section2">๋ฉ๋ด2</a></li>
<li><a href="#section3">๋ฉ๋ด3</a></li>
<li><a href="#section4">๋ฉ๋ด4</a></li>
<li><a href="#section5">๋ฉ๋ด5</a></li>
<li><a href="#section6">๋ฉ๋ด6</a></li>
<li><a href="#section7">๋ฉ๋ด7</a></li>
<li><a href="#section8">๋ฉ๋ด8</a></li>
<li><a href="#section9">๋ฉ๋ด9</a></li>
</ul>
</nav>
<!-- //parallax__nav -->
<nav id="parallax__top">Top</nav>
<!-- //parallax__top -->
<main id="parallax__cont">
<div id="contents">
<section id="section1" class="content__item">
<span class="content__item__num">01</span>
<h1 class="content__item__title">section1</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
๋ฏธ๋๋ ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ํ๋๊ฐ์ ๋ฌ๋ ค ์๋ค.
</p>
</section>
<!-- //section1 -->
<section id="section2" class="content__item">
<span class="content__item__num">02</span>
<h1 class="content__item__title">section2</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
์ด์ ๋ก ๋์๊ฐ ์ ์๋ค. ์๋ํ๋ฉด ๋๋ ์ด์ ์๋ ๋ค๋ฅธ ์ฌ๋์ด ๋์๊ธฐ
๋๋ฌธ์ด๋ค.
</p>
</section>
<!-- //section2 -->
<section id="section3" class="content__item">
<span class="content__item__num">03</span>
<h1 class="content__item__title">section3</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
์ธ์ ๋ ํ์ฌ์ ์ง์คํ ์ ์๋ค๋ฉด ํ๋ณตํ ๊ฒ์ด๋ค.
</p>
</section>
<!-- //section3 -->
<section id="section4" class="content__item">
<span class="content__item__num">04</span>
<h1 class="content__item__title">section4</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
๋จผ์ ํ ๊ฝ์ ๋จผ์ ์ง๋ค ๋จ๋ณด๋ค ๋จผ์ ๊ณต์ ์ธ์ฐ๋ ค๊ณ ์กฐ๊ธํ ์๋๊ฒ์ด
์๋๋ค.
</p>
</section>
<!-- //section4 -->
<section id="section5" class="content__item">
<span class="content__item__num">05</span>
<h1 class="content__item__title">section5</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
์ข์ ์ฑ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ํ ๊ฑธ์ ํ ๊ฑธ์์ด ํ์ฐจ๊ณ ์ถฉ์คํ์ง ์์ผ๋ฉด ์
๋๋ค.
</p>
</section>
<!-- //section5 -->
<section id="section6" class="content__item">
<span class="content__item__num">06</span>
<h1 class="content__item__title">section6</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
์ฑ๊ณต์ ๋น๊ฒฐ์ ๋จ ํ ๊ฐ์ง, ์ํ ์ ์๋ ์ผ์ ๊ด์ ์ผ๋ก ์ง์คํ๋
๊ฒ์ด๋ค.
</p>
</section>
<!-- //section6 -->
<section id="section7" class="content__item">
<span class="content__item__num">07</span>
<h1 class="content__item__title">section7</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
๊ฟ์ ๊ณ์ ๊ฐ์งํ๊ณ ์์ผ๋ฉด ๋ฐ๋์ ์คํํ ๋๊ฐ ์จ๋ค.
</p>
</section>
<!-- //section7 -->
<section id="section8" class="content__item">
<span class="content__item__num">08</span>
<h1 class="content__item__title">section8</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
ํํ ์ฌ๋๋ค์ ๊ธฐํ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ง๋ง ๊ธฐํ๋ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋์๊ฒ ์กํ์ง
์๋ ๋ฒ์ด๋ค.
</p>
</section>
<!-- //section8 -->
<section id="section9" class="content__item">
<span class="content__item__num">09</span>
<h1 class="content__item__title">section9</h1>
<figure class="content__item__imgWrap">
<div class="content__item__img"></div>
</figure>
<p class="content__item__desc">
์ด๋ฏธ๋๋๋ฒ๋ฆฐ ์ผ์ ํํํ๊ธฐ ๋ณด๋ค๋ ํ๊ณ ์ถ์๋ ์ผ๋ค์ ํ์ง๋ชปํ ๊ฒ์
ํํํ๋ผ.
</p>
</section>
<!-- //section9 -->
</div>
</main>
<!-- //main -->
<aside id="parallax__info">
<div class="scroll">scrollTop : <span>0</span>px</div>
</aside>
โ๏ธ CSS ๋ณด๊ธฐ
/* parallax__nav */
#parallax__nav {
position: fixed;
right: 20px;
top: -200px;
z-index: 2000;
background-color: rgba(95, 95, 95, 0.4);
padding: 20px 30px;
border-radius: 50px;
transition: top 0.4s ease;
}
#parallax__nav.show {
top: 20px;
}
#parallax__nav li {
display: inline;
margin: 0 5px;
}
#parallax__nav li a {
display: inline-block;
/* width: 30px; */
height: 30px;
padding: 5px 20px;
text-align: center;
line-height: 30px;
}
#parallax__nav li.active a {
background: #fff;
color: #000;
border-radius: 20px;
box-sizing: content-box;
}
#parallax__top {
position: fixed;
left: 50%;
bottom: -220px;
z-index: 10000;
transform: translateX(-50%);
width: 40px;
height: 40px;
background-color: rgba(0, 0, 0, 0.4);
text-align: center;
line-height: 40px;
color: #fff;
border-radius: 50%;
cursor: pointer;
transition: all 0.3s;
}
#parallax__top.show {
bottom: 20px;
}
#parallax__top:hover {
background-color: #fff;
color: #000;
}
#parallax__cont {
max-width: 1600px;
/* background-color: rgba(255,255,255,0.1); */
width: 98%;
margin: 0 auto;
}
.content__item {
width: 1000px;
max-width: 70vw;
margin: 30vw auto;
/* background-color: rgba(255,255,255,0.1); */
text-align: left;
margin-right: 0;
position: relative;
padding-top: 10vw;
}
.content__item:nth-child(even) {
margin-left: 0;
text-align: right;
}
.content__item__num {
font-size: 35vw;
font-family: "Lato";
font-weight: 100;
position: absolute;
left: -5vw;
top: -16vw;
opacity: 0.07;
z-index: -2;
}
.content__item:nth-child(even) .content__item__num {
right: -5vw;
left: auto;
}
.content__item__title {
font-weight: 400;
text-transform: capitalize; /* ์ฒซ๊ธ์๋ง ๋๋ฌธ์ */
}
.content__item__imgWrap {
width: 100%;
padding-bottom: 56.25%;
background: #000;
position: relative;
overflow: hidden;
z-index: -1;
}
.content__item__img {
position: absolute;
width: 110%;
height: 110%;
left: -5px;
top: -5px;
background-image: url(../assets/img/city_bg02.jpg);
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
filter: saturate(0%);
transition: all 1s;
}
.content__item:nth-child(2) .content__item__img {
background-image: url(../assets/img/city_bg03.jpg);
}
.content__item:nth-child(3) .content__item__img {
background-image: url(../assets/img/city_bg04.jpg);
}
.content__item:nth-child(4) .content__item__img {
background-image: url(../assets/img/city_bg05.jpg);
}
.content__item:nth-child(5) .content__item__img {
background-image: url(../assets/img/Mountian_bg01.jpg);
}
.content__item:nth-child(6) .content__item__img {
background-image: url(../assets/img/Mountian_bg02.jpg);
}
.content__item:nth-child(7) .content__item__img {
background-image: url(../assets/img/Mountian_bg03.jpg);
}
.content__item:nth-child(8) .content__item__img {
background-image: url(../assets/img/Mountian_bg04.jpg);
}
.content__item:nth-child(9) .content__item__img {
background-image: url(../assets/img/Mountian_bg05.jpg);
}
.content__item__desc {
font-size: 4vw;
line-height: 1.4;
margin-top: -5vw;
margin-left: -4vw;
word-break: keep-all;
}
.content__item:nth-child(even) .content__item__desc {
margin-left: auto;
margin-right: -4vw;
}
#parallax__info {
position: fixed;
left: 20px;
bottom: 20px;
z-index: 2000;
background: rgba(0, 0, 0.4);
color: #fff;
padding: 20px;
border-radius: 10px;
}
#parallax__info li,
.scrollTop {
line-height: 1.4;
}
@media (max-width: 800px) {
#parallax__cont {
margin-top: 70vw;
}
#parallax__nav {
padding: 10px;
right: auto;
left: 10px;
top: 50%;
transform: translateY(-50%);
border-radius: 5px;
background-color: rgba(0, 0, 0, 0.8);
}
#parallax__nav li {
display: block;
margin: 5px;
}
#parallax__nav li a {
font-size: 14px;
padding: 5px;
border-radius: 5px;
height: auto;
line-height: 1;
}
#parallax__nav li.active a {
border-radius: 5px;
}
#parallax__info {
left: 10px;
bottom: 10px;
}
}
#2. JAVASCRIPT : ์คํฌ๋ฆฝํธ๋ก ํ๋ด๋์ค ํจ๊ณผ ์ฃผ๊ธฐ
๋จผ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ณด๊ณ ์คํฌ๋ฆฝํธ๊ฐ ์ด๋ป๊ฒ ์๋๋๋์ง ํ์ธํด๋ด ์๋ค! ๐ฅน
๐ก ์ ์ฒด ์คํฌ๋ฆฝํธ ๋ณด๊ธฐ
// 01. top๋ฒํผ ๋ง์ง๋ง ์คํฌ๋กค ๊ฐ์๋ง ๋ณด์ด๊ฒ ํ๊ธฐ
// ๋ฌธ์ ์ ์ฒด ๋์ด - ๋ธ๋ผ์ฐ์ ๋์ด( = ๋ง์ง๋ง ์น์
์ ์คํฌ๋กค์ด ์์นํ์ ๋ top๋ฒํผ ๋์ฐ๊ธฐ)
//๋ฌธ์์ ์คํฌ๋กค ์ ์ฒด๊ฐ <= ํ์ฌ ์คํฌ๋กค ๊ฐ + ๋ธ๋ผ์ฐ์ ๋ด์์ ๋ณด์ด๋ ์คํฌ๋กค์ ๋์ด ๊ฐ
window.addEventListener("scroll", ()=> {
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
if(document.documentElement.scrollHeight <= scrollTop + window.innerHeight){
document.querySelector("#parallax__top").classList.add("show");
}else {
document.querySelector("#parallax__top").classList.remove("show");
}
});
//02. top๋ฒํผ ๋๋ฅด๋ฉด ์ฌ๋ผ์ค๊ฒ ํ๊ธฐ
document.querySelector("#parallax__top").addEventListener("click", ()=> {
window.scrollTo({left: 0, top: 0, behavior:"smooth"}); //scrollTo : ์ ๋ ๊ธฐ์ค์ ์คํฌ๋กค ๊ฐ ์ค์ ์ผ๋ก 0px์ ์ต์๋จ์ ๊ธฐ์ค์ผ๋ก ์ค์ ํ๋ ๊ฒ์ด๋ค. (By๋ ํ์ฌ ์คํฌ๋กค ๊ฐ ์์น์ ์ด๋ํ๋ ค๋ ์คํฌ๋กค์์ฐจ๊ฐ์ ๊ฑฐ๋ฆฌ๋ง ์ค์ .)
});
// 03. ์คํฌ๋กค ๊ฐ์ ์์ง์ผ ๋ ๋ง๋ค ์๋๋๋ ์ด๋ฒคํธ ์ค์ ํ๊ธฐ
// ํ์ฌ ๊ฐ์ด 3000์ธ ์คํฌ๋กค์ ๋ด๋ ธ์ ๋ ์คํฌ๋กค ๊ฐ์ด 3000๋ณด๋ค ๋์์ง๋ฉด ๋ฉ๋ด๊ฐ ๋ณด์ด์ง ์์์ผ ํ๊ณ ๋ค์ ์คํฌ๋กค์ ์ฌ๋ ค์ ํ์ฌ ๊ฐ๋ณด๋ค ์์์ง ๋ ๋ค์ ๋ณด์ฌ์ผ ํ๋ค.
// ํ์ฌ ๊ฐ์ ๊ณ์ ๋ณ๋ํ๊ณ ๋ธ๋ผ์ฐ์ ์ ์ด ์คํฌ๋กค ๊ฐ๋ ์ฝํ
์ธ ๊ฐ ์ถ๊ฐ๋ ์๋ก ๊ณ์ ๋ณํ๋ค. ์ฆ ์ด๋ฌํ ๋ณํ๋ฅผ ๊ณ ๋ คํ์ฌ 1์ด ์ ์ด๋ 30์ด ์ ์ฆ ๊ณผ๊ฑฐ์ ์คํฌ๋กค๊ฐ๊ณผ ํ์ฌ์ ์คํฌ๋กค๊ฐ์ ๋น๊ตํ๋ ์์ ๊ตฌํด์ผ ํ๋ค.
let nowScroll = true; // ํธ๋ฆฌ๊ฑฐ ๋ณ์ ์ด์ฉ //nowScroll๊ฐ true์ผ ๋ ์คํ
let lastScroll = 0;
function scrollProgress(){
// info์ ํ์ฌ ์คํฌ๋กค ์์น ๊ฐ ๊ตฌํํ๊ธฐ
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
document.querySelector('#parallax__info span').innerText = Math.ceil(scrollTop);
nowScroll = true;
// nowScroll = false์ผ ๋ hasScroll()ํจ์๊ฐ 0.3์ด ๋ง๋ค ์คํ๋๋๋ก ์ค์ : ๊ณ์ ์คํ ์ ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค๊ฐ์ ์ฝ๊ฐ์ ๊ฐ๊ฒฉ์ ๋๊ธฐ ์ํด setInterval๋ก ์๊ฐ์ฐจ๋ฅผ ์ค ๊ฒ.
setInterval(() => {
if(nowScroll){
nowScroll = false;
hasScroll();
}
},300);
}
function hasScroll(){
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
//console.log("ํ์ฌ ๊ฐ",scrollTop, "์ด์ ๊ฐ", lastScroll)
if(scrollTop < lastScroll ){ //ํ์ฌ ์คํฌ๋กค ๊ฐ๊ณผ 1์ด ์ ์ ์คํฌ๋กค ๊ฐ
document.querySelector("#parallax__nav").classList.add("show");
}else {
document.querySelector("#parallax__nav").classList.remove("show");
}
lastScroll = scrollTop; // 1์ด ์ ์ ํ์ฌ ์คํฌ๋กค ๊ฐ์ด ๋ง์ง๋ง ์คํฌ๋กค๊ฐ์ด ๋์ด 0.3์ด๋ง๋ค ์คํฌ๋กค๊ฐ์ ์ธ์ํ์ฌ ๊ฐ์ด ๋ณํํจ.
}
window.addEventListener("scroll", scrollProgress); //ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๋ฌ์์ ์ถ์ถํ๋ค.
โ๏ธ ๊ทธ๋ผ ๋ค์์ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ํจ๊ป ์คํฌ๋ฆฝํธ๋ฅผ ์์๊ฐ๋ด ์๋ค ๐ฅน
// 01. top๋ฒํผ ๋ง์ง๋ง ์คํฌ๋กค ๊ฐ์๋ง ๋ณด์ด๊ฒ ํ๊ธฐ
//๋ฌธ์์ ์คํฌ๋กค ์ ์ฒด๊ฐ <= ํ์ฌ ์คํฌ๋กค ๊ฐ + ๋ธ๋ผ์ฐ์ ๋ด์์ ๋ณด์ด๋ ์คํฌ๋กค์ ๋์ด ๊ฐ
window.addEventListener("scroll", ()=> {
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
if(document.documentElement.scrollHeight <= scrollTop + window.innerHeight){
document.querySelector("#parallax__top").classList.add("show");
}else {
document.querySelector("#parallax__top").classList.remove("show");
}
});
1. ๋ค์ํ ๋ธ๋ผ์ฐ์ ํฌ๊ธฐ์๋ ํญ์ ๋ฒํผ์ด ๋ง์ง๋ง ์คํฌ๋กค ๊ฐ์ ๋ณด์ด๋๋ก if๋ฌธ์ ์ค์ ํฉ๋๋ค.
2. classList๋ฅผ ํตํด ๋ง์ฝ true๋ผ๋ฉด show ์ ํ์๋ฅผ ๋ถ์ด๊ณ ์๋๋ผ๋ฉด show๋ฅผ ์ง์๋๋ค.
///02. top๋ฒํผ ๋๋ฅด๋ฉด ์ฌ๋ผ์ค๊ฒ ํ๊ธฐ
document.querySelector("#parallax__top").addEventListener("click", ()=> {
window.scrollTo({left: 0, top: 0, behavior:"smooth"}); //scrollTo : ์ ๋๊ฐ ๊ธฐ์ค
});
1. addEventListener์์ ๋ฒํผ์ ํด๋ฆญํ ๊ฒฝ์ฐ scrollTo๋ฅผ ํตํด ๋ถ๋๋ฝ๊ฒ ์ต์๋จ์ผ๋ก ์ฌ๋ผ๊ฐ๋๋ก ์์น์ค์ ๊ณผ ํจ๊ณผ๋ฅผ ์ค์ ํด์ค๋๋ค.
// 03. ์คํฌ๋กค ๊ฐ์ ์์ง์ผ ๋ ๋ง๋ค ์๋๋๋ ์ด๋ฒคํธ ์ค์ ํ๊ธฐ
// ํ์ฌ ๊ฐ์ด 3000์ธ ์คํฌ๋กค์ ๋ด๋ ธ์ ๋ ์คํฌ๋กค ๊ฐ์ด 3000๋ณด๋ค ๋์์ง๋ฉด ๋ฉ๋ด๊ฐ ๋ณด์ด์ง ์์์ผ ํ๊ณ ๋ค์ ์คํฌ๋กค์ ์ฌ๋ ค์ ํ์ฌ ๊ฐ๋ณด๋ค ์์์ง ๋ ๋ค์ ๋ณด์ฌ์ผ ํ๋ค.
// ํ์ฌ ๊ฐ์ ๊ณ์ ๋ณ๋ํ๊ณ ๋ธ๋ผ์ฐ์ ์ ์ด ์คํฌ๋กค ๊ฐ๋ ์ฝํ
์ธ ๊ฐ ์ถ๊ฐ๋ ์๋ก ๊ณ์ ๋ณํ๋ค. ์ฆ ์ด๋ฌํ ๋ณํ๋ฅผ ๊ณ ๋ คํ์ฌ 1์ด ์ ์ด๋ 30์ด ์ ์ฆ ๊ณผ๊ฑฐ์ ์คํฌ๋กค๊ฐ๊ณผ ํ์ฌ์ ์คํฌ๋กค๊ฐ์ ๋น๊ตํ๋ ์์ ๊ตฌํด์ผ ํ๋ค.
let nowScroll = true; // ํธ๋ฆฌ๊ฑฐ ๋ณ์ ์ด์ฉ //nowScroll๊ฐ true์ผ ๋ ์คํ
let lastScroll = 0;
function scrollProgress(){
// info์ ํ์ฌ ์คํฌ๋กค ์์น ๊ฐ ๊ตฌํํ๊ธฐ
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
document.querySelector('#parallax__info span').innerText = Math.ceil(scrollTop);
nowScroll = true;
// nowScroll = false์ผ ๋ hasScroll()ํจ์๊ฐ 0.3์ด ๋ง๋ค ์คํ๋๋๋ก ์ค์ : ๊ณ์ ์คํ ์ ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค๊ฐ์ ์ฝ๊ฐ์ ๊ฐ๊ฒฉ์ ๋๊ธฐ ์ํด setInterval๋ก ์๊ฐ์ฐจ๋ฅผ ์ค ๊ฒ.
setInterval(() => {
if(nowScroll){
nowScroll = false;
hasScroll();
}
},300);
}
function hasScroll(){
let scrollTop = window.pageYOffset || window.scrollY || document.documentElement.scrollTop;
//console.log("ํ์ฌ ๊ฐ",scrollTop, "์ด์ ๊ฐ", lastScroll)
if(scrollTop < lastScroll ){ //ํ์ฌ ์คํฌ๋กค ๊ฐ๊ณผ 1์ด ์ ์ ์คํฌ๋กค ๊ฐ
document.querySelector("#parallax__nav").classList.add("show");
}else {
document.querySelector("#parallax__nav").classList.remove("show");
}
lastScroll = scrollTop; // 1์ด ์ ์ ํ์ฌ ์คํฌ๋กค ๊ฐ์ด ๋ง์ง๋ง ์คํฌ๋กค๊ฐ์ด ๋์ด 0.3์ด๋ง๋ค ์คํฌ๋กค๊ฐ์ ์ธ์ํ์ฌ ๊ฐ์ด ๋ณํํจ.
}
window.addEventListener("scroll", scrollProgress); //ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๋ฌ์์ ์ถ์ถํ๋ค.
'EFFECT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[EFFECT] ๋ง์ฐ์ค ํจ๊ณผ 02 : ์ปค์ ๋ฐ๋ผ๋ค๋๊ธฐ (2) | 2022.09.19 |
---|---|
[EFFECT] ํ๋ด๋ ์ค ํจ๊ณผ 04 : ๋ํ๋ด๊ธฐ ํจ๊ณผ (2) | 2022.09.19 |
[EFFECT] ํ๋ด๋ ์ค ํจ๊ณผ02 : ์ค๋ฌด์ค~ํ ๋ฒํผ ์ด๋ (1) | 2022.09.14 |
[EFFCET] ํ๋ด๋ ์ค(parallax) ํจ๊ณผ : ๋ฉ๋ด ์ด๋ (3) | 2022.09.07 |
[EFFECT] ๋ง์ฐ์ค ํจ๊ณผ 01 : ์ปค์ ๋ฐ๋ผ๋ค๋๊ธฐ (1) | 2022.09.06 |
๋๊ธ