css3:酷炫3D魔方動畫

               

1、主體思想

   有六塊重疊在一塊兒的材料板子(div),經過3D變換粘貼成一個立方體魔方,有六個面,而後把魔方釘在另一個板子(div)上。當對這個板子進行3D變換的時候,釘在其上面的魔方也隨之3D變換。html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3D魔方</title>
    <style>
        /*定義魔方運動的舞臺*/
        #stage{
            width: 1200px;
            height: 600px;
            margin: auto;
            background-color: black;
            perspective: 1000px;
        }
        /*定義魔方的托盤*/
        #cube{
            background-color: rgba(255,91,196,0.2);
            position: absolute;
            width: 104px;
            height: 124px;
            left: 550px;
            top: 180px;
            transform:rotateY(40deg);
            transform-style: preserve-3d;
            color: white;
            text-align: center;
        }
        /*定義魔方的六個面 1*/
        #cube div{
            background-color: rgba(53,165,14,0.2);
            position: absolute;
            width: 100px;
            height: 100px;
            line-height: 100px;
            text-align: center;
            transform-style: preserve-3d;
            border: 2px solid rgba(255, 255, 255, 0.5);
            color: white;
            box-shadow: 0 0 3em rgba(255, 255, 255, 0.4);
        }
        /*定義魔方的六個面 2*/
        #front{
            transform: translateZ(100px);
        }
        #left{
            transform: rotateY(-90deg) translateX(50px) translateZ(50px) ;
        }
        #right{
            transform: rotateY(90deg) translateX(-50px) translateZ(50px) ;
        }
        #top{
            transform: rotateX(90deg) translateY(50px) translateZ(50px) ;
        }
        #bottom{
            transform: rotateX(-90deg) translateY(-50px) translateZ(50px) ;
        }
        #back{
            transform: rotateY(180deg);
        }
        /*定義動畫幀 E*/
        @keyframes spin {
            0% {
                transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg);
            }
            50% {
                transform:rotateX(-360deg) rotateY(0deg) rotateZ(180deg);
            }
            100% {
                transform:rotateX(-360deg) rotateY(360deg) rotateZ(360deg);
            }
        }
        /*啓動魔方動畫 S*/
        #cube {
            animation: 4s spin ease-in-out infinite;
        }

    </style>
</head>
<body>
<div id="stage">
    <div id="cube">魔方託板
        <div id="front">前</div>
        <div id="back">後</div>
        <div id="left">左</div>
        <div id="right">右</div>
        <div id="top">上</div>
        <div id="bottom">底</div>
    </div>
</div>
</body>
</html>
相關文章
相關標籤/搜索