½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
CSS¸¦ ÀÌ¿ëÇÑ 3D ºÏ ¾Ö´Ï¸ÞÀÌ¼Ç 3D book : happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > CSS > ±âŸȿ°ú > CSS¸¦ ÀÌ¿ëÇÑ 3D ºÏ ¾Ö´Ï¸ÞÀÌ¼Ç 3D book »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
HTML
CSS
php
API
ASP
mysql
jquery
slide
image
¸Þ´º
mobile
°Ô½ÃÆÇ
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
CSS¸¦ ÀÌ¿ëÇÑ 3D ºÏ ¾Ö´Ï¸ÞÀÌ¼Ç 3D book
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù ±âŸȿ°ú
´Ù¿î·Îµå Ƚ¼ö 0 ȸ
°£´Ü¼³¸í CSS¸¦ ÀÌ¿ëÇÑ 3D ºÏ ¾Ö´Ï¸ÞÀ̼ÇÀÔ´Ï´Ù.
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ
 


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">

                    <img src="https://images-na.ssl-images-amazon.com/images/I/91-j2UzZW4L.jpg" alt="cover">

                </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">

                    <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/184729/2019-Annihilation-DVD-and-Bluray-Cover-UK-and-USA-CST1.jpg" alt="cover">

                </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)

});


ÇØ´ç »çÀÌÆ®·Î À̵¿Çϰųª ÷ºÎÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ¿©
Àüü ¼Ò½º¸¦ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.



³×ƼÁð ÀÇ°ß   ÀÌ¿ëÇϽŠÀÚ·áÀÇ Èı⸦ ÀÚÀ¯·Ó°Ô ÀÛ¼ºÇϼ¼¿ä. (»ó¾÷ÀûÀÎ ±¤°í ¹× µµ¹è¼º ±Û µîÀº »çÀüÅ뺸¾øÀÌ »èÁ¦µÉ ¼ö ÀÖ½À´Ï´Ù.)
³»¿ë ¾ÆÀ̵ð Àǰ߳²±â±â
µî·ÏµÈ ÀǰßÀÌ ¾ø½À´Ï´Ù.
1
À̸§
³»¿ë
:³×¸Â¾Æ¿ä: :È­³ª´Â±º¿ä: :Àá¿Í: :¿ì¿ïÇØ: :À̰ǾƳÄ: :¿ÕÇÏÇÏ: ¿Õ¿ôÀ½~ ³î·¥~
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
µµ¹è¹æÁöŰ
 22158377 º¸ÀÌ´Â µµ¹è¹æÁö۸¦ ÀÔ·ÂÇϼ¼¿ä.