일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- #image
- #cgimall
- javascript
- #뉴스
- 솔루션
- #이미지
- 사이트제작
- #솔루션
- #쇼핑몰
- #웹솔루션
- #jQuery
- #happycgi
- #업종별
- #CSS
- 홈페이지제작
- CGIMALL
- 웹솔루션
- 게시판
- 이미지
- #해피CGI
- php
- 홈페이지
- #동영상
- #홈페이지
- 해피씨지아이
- happycgi
- 해피CGI
- CSS
- jquery
- #홈페이지제작
- Today
- Total
웹솔루션개발 25년 노하우! 해피CGI의 모든것
CSS를 이용한 3D 북 애니메이션 3D book 본문
CSS를 이용한 3D 북애니메이션입니다.
소스를 변경하여 다양하게 응용 가능합니다.
HTML 구조
<section class="app" id="app" data-current-media="book">
<h1 class="title">3D cover (CSS)</h1>
<article class="media-container">
<div class="book-wrapper">
<div class="book">
<div class="book__front">

</div>
<div class="book__paper"></div>
<div class="book__back"></div>
</div>
<div class="book-shadow"></div>
</div>
<div class="movie-wrapper">
<div class="movie">
<div class="movie__front">

</div>
<div class="movie__edge"></div>
<div class="movie__side"></div>
</div>
<div class="movie-shadow"></div>
</div>
</article>
<div class="media-buttons" id="media-buttons">
<button class="media__button" value="book">Book</button>
<button class="media__button" value="movie">Movie</button>
</div>
<div class="controls">
<div class="controls__thickness">
<p>Book thickness: <span id="thickness-output">?</span></p>
<input id="thickness" type="range" min="1" max="80" step="1" value="40">
</div>
</div>
</section>
CSS 소스(SCSS)
/**
* App component
*/
.app {
--thickness: 40px;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
width: calc(100% - 8vmin);
height: calc(100vh - 8vmin);
margin: 4vmin;
padding-bottom: 40px;
background: linear-gradient(to right, #56ab2f, #a8e063);
border-radius: 10px;
overflow: hidden;
perspective: 1500px;
&[data-current-media="book"] {
background: linear-gradient(to right, #56ab2f, #a8e063);
.book-wrapper {
display: block;
}
.media__button[value="book"] {
color: black;
}
}
&[data-current-media="movie"] {
background: linear-gradient(to right, #2196F3, #03A9F4);
.movie-wrapper {
display: block;
}
.media__button[value="movie"] {
color: black;
}
.controls__thickness {
display: none;
}
}
}
/**
* Title
*/
.title {
position: absolute;
top: 0;
display: block;
width: 100%;
font-family: 'Josefin Sans';
padding: 5vmin;
font-size: 30px;
color: #fbfffc;
z-index: 1;
}
.
.
.
JS 소스
/**
* DOM refrences
*/
const app = document.getElementById("app");
const thickness = document.getElementById("thickness");
const thicknessOutput = document.getElementById("thickness-output");
const bookWrapper = document.getElementById("book-wrapper");
const movieWrapper = document.getElementById("movie-wrapper");
const mediaButtons = document.getElementById("media-buttons");
thicknessOutput.innerHTML = thickness.value;
/**
* Attach event handlers
*/
thickness.oninput = function() {
thicknessOutput.innerHTML = this.value;
app.style.setProperty("--thickness", `${this.value}px`);
}
mediaButtons.addEventListener("click", e => {
if (!e.target.value) { return; }
app.setAttribute("data-current-media", e.target.value)
});
해당 사이트로 이동하거나 첨부파일을 다운로드하여
전체 소스를 확인하실 수 있습니다.
'웹프로그램밍 자료실 > HTML 자료' 카테고리의 다른 글
[해피CGI][cgimall] 이미지 오버하면 변경되는 카드 뉴스 스타일 Player/User Cards (0) | 2025.10.01 |
---|---|
[해피CGI][cgimall] 마우스 오버 패럴랙스 슬라이더(React Slider w/ Hover Effect) (0) | 2025.09.22 |
[해피CGI][cgimall] 스택형 카드 스크롤 애니메이션 (Stacking card) (0) | 2025.09.19 |
[해피CGI][cgimall] Animated CSS Gradient Border 애니메이션 CSS 그라데이션 테두리 (0) | 2025.09.18 |
[해피CGI][cgimall] wavy background 물결 모양 배경 css (0) | 2025.09.17 |