728x90
1. visual section 배경 넣고 이미지 배치하기
- height 646px
2. 시간차로 이미지 나타내기
- 클래스 fade-in 추가하여 투명도가 0인 상태에서 시작
3. 5가지 버튼 만들기 (#333,reverse,#592B18,#D9AA8A,#fff)
- width 139px / padding 10px
1. visual section 배경 넣고 이미지 배치하기
<!-- VISUAL SECTION -->
<section class="visual">
<div class="inner">
<div class="title">
<img src="./images/visual_title.png" alt="Delightful" />
<a href="javascript:void(0)" class="btn btn--brown">자세히 보기</a>
</div>
<img src="./images/visual_cup1.png" alt="new OATMEAL LATTE" class="cup1 image" />
<img src="./images/visual_cup1_text.png" alt="오트밀 라떼" class="cup1 text" />
<img src="./images/visual_cup2.png" alt="new CARAMEL CRUMBLE MOCHA" class="cup2 image" />
<img src="./images/visual_cup2_text.png" alt="카라멜 크럼블 모카" class="cup2 text" />
<img src="./images/visual_spoon.png" alt="spoon" class="spoon" />
</div>
</section>
.visual { margin-top: 120px; background-image: url("../images/visual_bg.jpg"); background-position: center;}
.visual .inner { height: 646px;}
.visual .title { position: absolute; top: 88px; left: -10px;}
.visual .title .btn { position: absolute; top: 259px; left: 173px;}
.visual .cup1.image { position: absolute; bottom: 0; right: -47px;}
.visual .cup1.text { position: absolute; top: 38px; right: 171px;}
.visual .cup2.image { position: absolute; bottom: 0px; right: 162px;}
.visual .cup2.text { position: absolute; top: 321px; right: 416px;}
.visual .spoon { position: absolute; bottom: 0px; left: 275px;}
2. 시간차로 이미지 나타내기
(힌트)
더보기
- CSS에서 .fade-in에는 모두 투명도0
- JS에서 forEach라는 DOM API와 gsap 라이브러리를 이용
- forEach함수의 매개변수로는 fadeEl, index 이용
- gsap의 속성은 delay와 opacity 이용
📌반복처리하는 함수 forEach
📌index는 0부터 시작하는 제로베이스 -> index + 1
📌.7초마다 나타나게 하기 위해서는 기초값에 .7을 곱한다.
const fadeEls = document.querySelectorAll('.visual .fade-in');
fadeEls.forEach(function (fadeEl, index) {
gsap.to(fadeEl, 1, { //fadeEl은 1초 동안 {}하게 한다.
delay: (index + 1) * .7, //fadeEl은 각각 .7초 차이로 나타난다.
opacity: 1
});
});
.visual .fade-in {
opacity: 0;
}
<div class="title fade-in">
<img src="./images/visual_title.png" alt="Delightful" />
<a href="javascript:void(0)" class="btn btn--brown">자세히 보기</a>
</div>
<div class="fade-in">
<img src="./images/visual_cup1.png" alt="new OATMEAL LATTE" class="cup1 image" />
<img src="./images/visual_cup1_text.png" alt="오트밀 라떼" class="cup1 text" />
</div>
<div class="fade-in">
<img src="./images/visual_cup2.png" alt="new CARAMEL CRUMBLE MOCHA" class="cup2 image" />
<img src="./images/visual_cup2_text.png" alt="카라멜 크럼블 모카" class="cup2 text" />
</div>
<div class="fade-in">
<img src="./images/visual_spoon.png" alt="spoon" class="spoon" />
</div>
3. 5가지 버튼 만들기
📌 -- dash기호를 사용한 클래스명 부여
.btn {
width: 130px;
padding: 10px;
border: 2px solid #333;
border-radius: 4px;
color: #333;
font-size: 16px; /* 부모로부터 글씨의 영향을 받을 수 있으므로 지정 */
font-weight: 700;
text-align: center;
cursor: pointer;
box-sizing: border-box;
display: block; /* a, span태그에 버튼을 부여했을 때도 정상적으로 작동하도록 */
transition: .4s;
}
.btn:hover { background-color: #333; color: #fff;}
.btn.btn--reverse { background-color: #333; color: #fff;}
.btn.btn--reverse:hover { background-color: transparent; color: #333;}
.btn.btn--brown { border-color: #592B18; color: #592B18;}
.btn.btn--brown:hover { background-color: #592B18; color: #fff;}
.btn.btn--gold { border-color: #D9AA8A; color: #D9AA8A;}
.btn.btn--gold:hover { background-color: #D9AA8A; color: #fff;}
.btn.btn--white { border-color: #fff; color: #fff;}
.btn.btn--white:hover { background-color: #fff; color: #333;}
728x90
'FE' 카테고리의 다른 글
JavaScript 토글 보이기 숨김 기능 / 슬라이드 페이지네이션, 네비게이션 스타일 추가하는 방법 (0) | 2021.10.17 |
---|---|
slider를 쉽게 만드는 라이브러리 Swiper js (0) | 2021.10.15 |
메인메뉴 상단 고정, 따라다니는 배지 스크롤하면 사라지기 (0) | 2021.10.13 |
메인메뉴와 하위 드롭메뉴 만들기 (0) | 2021.10.12 |
헤더 로고, 서브메뉴, 검색창 만들기 (0) | 2021.10.11 |