立方體動畫製作------方法一(忽略左右兩邊,保證上下前後四面旋轉到前面時都是正的)

方法一:(忽略左右兩邊,保證上下前後四面旋轉到前面時都是正的)


步驟一:

一個大盒子包着6個小盒子;

步驟二:

大盒子的寬高和小盒子的一樣;

步驟三:

子絕父相,讓6個小盒子脫離文檔流,疊在一起;

步驟四:

給6個小盒子設置不同背景顏色;

步驟五:

先做上下前後四個面,分別圍繞X軸旋轉90deg,180deg,270deg,360deg,再繼續沿Z軸平移寬度的一半。

步驟六:

再做左右兩個面,分別圍繞X軸平移小盒子寬的一半(其中一個是反方向),再圍繞Y軸旋轉90deg.

步驟七:

給父元素加transform-style: preserve-3d;轉成3d.

步驟八:

讓父元素旋轉,查看效果, transform:rotateY(30deg) rotateX(30deg); 

步驟九:

給父元素加動畫,animation: movie 5s linear infinite;

寫規則;@keyframes movie{
                form{
                    transform:rotateY(0deg) rotateX(0deg);
                }
                to{
                     transform:rotateY(360deg) rotateX(360deg);
                }
            }


HTML及CSS樣式如下:


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>立方體2</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
                list-style: none;
            }
            ul{
                width: 200px;
                height: 200px;
               /*  border:1px solid black; */
                /* box-sizing: border-box; */
                margin:200px auto;
                position:relative;
                transform-style: preserve-3d;
                transform:rotateY(30deg) rotateX(30deg);
                animation: movie 5s linear infinite;
            }


            @keyframes movie{
                form{
                    transform:rotateY(0deg) rotateX(0deg);
                }
                to{
                     transform:rotateY(360deg) rotateX(360deg);
                }
            }


            li{
                width: 200px;
                height: 200px;
                text-align: center;
                line-height: 200px;
                position:absolute;
                left:0;
                top: 0;
                opacity:0.5;
            }
            ul li:nth-child(1){
                background: red;
                transform: rotateX(90deg) translateZ(100px);
            }
             ul li:nth-child(2){
                background: yellow;
                transform: rotateX(180deg) translateZ(100px);
            }
            ul li:nth-child(3){
                background: green;
                transform: rotateX(270deg) translateZ(100px);
            }
            ul li:nth-child(4){
                background: pink;
                transform: rotateX(360deg) translateZ(100px);
            }
            ul li:nth-child(5){
                background: blue;
                transform: translateX(-100px) rotateY(90deg);
            }
            ul li:nth-child(6){
                background: orange;
                transform: translateX(100px) rotateY(90deg);
            }
            
        </style>
    </head>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ul>
    </body>
</html>


發佈了51 篇原創文章 · 獲贊 19 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章