์คํ๋ฒ
์ค ScrollTo ์คํ์์ค ์ฐ๊ฒฐ
<!-- GSAP & ScrollToPlugin -->
<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 src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollToPlugin.min.js" integrity="sha512-agNfXmEo6F+qcj3WGryaRvl9X9wLMQORbTt5ACS9YVqzKDMzhRxY+xjgO45HCLm61OwHWR1Oblp4QSw/SGh9SA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
- ๋ธ๋ผ์ฐ์ ์ gsap cdn ๊ฒ์
- index.html์ ์ฐ๊ฒฐ
์คํ๋ฒ
์ค ํ์ด์ง ์๋จ์ผ๋ก ์ด๋ HTML
<div id="to-top">
<div class="material-icons">arrow_upward</div>
</div>
์คํ๋ฒ
์ค ํ์ด์ง ์๋จ์ผ๋ก ์ด๋ CSS
#to-top {
width: 42px;
height: 42px;
background-color: #333;
color: #fff;
border: 2px solid #fff;
border-radius: 10px;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 30px;
right: 30px;
z-index: 9;
}
- ๊ฐ๋ก 42px, ์ธ๋ก 42px
- ๋ฐฐ๊ฒฝ ์ #333
- ์์ ์ #fff
- ํ
๋๋ฆฌ 2px solid ์ #fff
- ํ
๋๋ฆฌ ๋ฅ๊ธ๊ฒ 10px๋งํผ
- ์ปค์๋ ์์์ ๊ฐ์ ธ๋ค๋๋ฉด ์๊ฐ๋ฝ ์ปค์๋ก ๋ณ๊ฒฝ
- ์ํ ์ ๋ ฌ
- ์์๋ ๊ธฐ์ค ์ค์ ์ ๋ ฌ
- ์ข์ฐ ๊ธฐ์ค ์ค์ ์ ๋ ฌ
- ์์น ๊ณ ์
- ์๋๋ก๋ถํฐ 30px, ์ค๋ฅธ์ชฝ์ผ๋ก๋ถํฐ 30px ์์น์ ์ง์
- z-index:9๋ก ํ์ฌ ๋ชจ๋ ์์๋ณด๋ค ์์ ์ง์
์คํ๋ฒ
์ค ํ์ด์ง ์๋จ์ผ๋ก ์ด๋ JS
const badgeEl = document.querySelector('header .badges');
const toTopEl = document.querySelector('#to-top');
window.addEventListener('scroll', _.throttle(function () {
console.log(window.scrollY);
if (window.scrollY > 500){
// ๋ฐฐ์ง ์จ๊ธฐ๊ธฐ!
// gsap.to(์์, ์ง์์๊ฐ, ์ต์
);
gsap.to(badgeEl, .6, {
opacity: 0,
display: 'none'
});
// ๋ฒํผ ๋ณด์ด๊ธฐ!
gsap.to(toTopEl, .2, {
x: 0
});
} else {
// ๋ฐฐ์ง ๋ณด์ด๊ธฐ!
gsap.to(badgeEl, .6, {
opacity: 1,
display: 'block'
});
// ๋ฒํผ ์จ๊ธฐ๊ธฐ!
gsap.to(toTopEl, .2, {
x: 100
});
}
}, 300));
// _.throttle(ํจ์, ์๊ฐ)
toTopEl.addEventListener('click', function () {
gsap.to(window, .7, {
scrollTo: 0
});
});
- ๊ธฐ์กด ๋ฑ์ง๊ฐ ๋ณด์ด๋ฉด ์๋จ ์คํฌ๋กค ๋ฒํผ์ด ์๋ณด์ด๊ณ , ๊ธฐ์กด ๋ฑ์ง๊ฐ ์๋ณด์ด๋ฉด ์คํฌ๋กค ๋ฒํผ์ด ๋ณด์ด๋ ๊ตฌ์กฐ
- ํด๋ฆญ์ ํ๋ฉด ๋ทฐํฌํธ ๊ธฐ์ค ์์์ ์ผ๋ก ์ฌ๋ผ๊ฐ.
์คํ๋ฒ
์ค ํ์ด์ง ์๋จ์ผ๋ก ์ด๋ ์ต์ข
์์ฑ