화면을 스크롤 했을 때, 어느정도 아래로 내리면 투명하게 바뀌면서 배지가 없어지도록 만들었다.
배지에 마우스 컨트롤이 올라가면 클릭 표시로 바뀌도록 설명해줬다.
투명하게 바뀌면서 배지가 없어지도록 하기 위해서 display값을 'none'과 'block'으로 만들어줬다.
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.12.2/gsap.min.js" integrity="sha512-16esztaSRplJROstbIIdwX3N97V1+pZvV33ABoG1H2OyTttBxEGkTsoIVsiP1iaTtM8b3+hu2kB6pQ4Clr5yug==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<header>내용 안에 추가
<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>
main.css
/* HEADER */
header {
width: 100%;
background-color: #f6f5f0;
border-bottom: 1px solid #c8c8c8;
position: fixed;
top: 0;
}
header .badges {
position: absolute;
top: 132px;
right: 12px;
}
header .badges .badge {
border-radius: 10px;
overflow: hidden;
margin-bottom: 12px;
box-shadow: 4px 4px 10px rgba(0, 0, 0,.15);
cursor: pointer;
}
main.js
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(함수, 시간)
728x90
반응형
'혼자 이것저것 공부해보는 > 스타벅스 클론 코딩' 카테고리의 다른 글
스타벅스 클론코딩 #5 요소 슬라이드 - 수직슬라이드 (Swiper) (0) | 2024.02.07 |
---|---|
스타벅스 클론코딩 #4.순차적 애니메이션 (0) | 2023.11.28 |
스타벅스 클론코딩 #2. 메인 메뉴 (0) | 2023.11.02 |
스타벅스 클론코딩 #1-2. 검색창 생성 및 헤더 완성 (0) | 2023.11.01 |
스타벅스 클론코딩 #1. 헤더만들기 (0) | 2023.10.11 |