패스트캠퍼스 온라인 강의를 통해 만든 ★다방 랜딩페이지. rotateY 변환함수를 이용하여 3D 애니메이션을 구현해보았다.
<!-- RESERVE STORE -->
<section class="reserve-store">
<div class="inner">
<div class="medal">
<div class="front">
<img src="./images/reserve_store_medal_front.png" alt="">
</div>
<div class="back">
<img src="./images/reserve_store_medal_back.png" alt="">
<a href="javascript:void(0)" class="btn">
매장안내
</a>
</div>
</div>
</div>
</section>
.reserve-store 배경에 대해서는 앞서 pick-your-favorite 섹션에서 작성했던 것과 동일한 방식으로 스크롤바를 내릴 때 이미지는 고정되고, 이미지 사이즈는 뷰포트에 맞춰서 출력되도록 선언하였다
.reserve-store .medal
.reserve-store .medal .front, .reserve-store .medal .back{
.reserve-store .medal .front
.reserve-store .medal:hover .front
.reserve-store .medal .back
.reserve-store .medal:hover .back {
.reserve-store .medal:hover .back .btn{
/* RESERVE STORE */
.reserve-store {
background-image: url("../images/reserve_store_bg.jpg");
background-repeat: no-repeat;
background-position: center;
background-attachment: fixed;
background-size: cover;
}
.reserve-store .inner {
height: 600px;
/* 가운데 정렬 */
display: flex;
justify-content: center;
align-items: center;
}
.reserve-store .medal {
width: 334px;
height: 334px;
perspective: 600px;
}
.reserve-store .medal .front,
.reserve-store .medal .back {
position: absolute;
width: 334px;
height: 334px;
backface-visibility: hidden;
transition: 1s;
}
.reserve-store .medal .front {
transform : rotateY(0deg);
}
.reserve-store .medal:hover .front {
transform: rotateY(180deg);
}
.reserve-store .medal .back {
transform : rotateY(-180deg);
}
.reserve-store .medal:hover .back {
transform : rotateY(0deg);
}
.reserve-store .medal:hover .back .btn{
position: absolute;
top: 240px;
left: 0;
right: 0;
margin: auto;
}