我愛擼碼,擼碼使我感到快樂!
大家好,我是Counter,本章微博主要利用了CSS3的一些新特性,
主要用到關鍵幀來使3D圖形運動起來,涉及到了一些抽象的思想,立體的想象。
先給大家看看完成的效果,代碼也不是很難,每行代碼都給到了詳細注釋,純CSS,沒有用到JS,CSS3不錯。
效果如下:
每一行基本都有注釋,就不重復說了,代碼如下:
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>3D旋轉</title> <style> /* 給最外層父級設置景深,讓里面的元素有立體的空間,并且設置寬高 */ .wrapper { /* 景深600像素 */ perspective: 500px; /* 設置margin距離上面100px,左右自適應,下面0 */ margin: 100px auto 0; width: 200px; height: 200px; /* border: 1px solid black; */ } .box { /* 設置相對定位好讓子元素相對于自己定位 */ position: relative; /* 給item設置保留3D效果,如果沒有設置里面的元素將不會呈現3D效果 */ transform-style: preserve-3d; width: 200px; height: 200px; /* move為設置的關鍵幀,運動8秒,勻速運動,無限次(各個參數代表的含義) */ animation: move 8s linear infinite; } /* 選擇所有開頭帶有item的元素,使其全部定位到父級所在的位置 */ div[class^="item"] { position: absolute; top: 0; left: 0; width: 200px; height: 200px; /* 使文本左右對齊 */ text-align: center; /* 使文本上下對齊 */ line-height: 200px; } /* 立方體有六面,每個item1~6代表每一面,此時里面的item1~6具有三條軸,x,y,z */ /* x軸即是你電腦屏幕寬度的那條軸,從左到右。y軸即是你電腦屏幕高度的那條軸,從上到下。z軸即是你眼睛垂直看電腦屏幕的那條軸,方向從電腦屏幕到你的眼睛*/ /* 設置第一面 */ .item1 { /* 沿z軸向你眼睛方向移動100px */ transform: translateZ(100px); /* 設置背景顏色,最后一個參數為透明度設置為0.6 */ background-color: rgba(255, 0, 0, 0.6); } /* 設置第二面 */ .item2 { /* 沿z軸向里移動100px即為-100px */ transform: translateZ(-100px); background-color: rgba(72, 42, 245, 0.6); } /* 設置第三面 */ .item3 { /* 沿x軸旋轉90度,然后再向z軸移動100px(deg在這里表示度的意思) */ transform: rotateX(90deg) translateZ(100px); background-color: rgba(217, 230, 36, 0.6); } /* 設置第四面 */ .item4 { /* 沿x軸旋轉90度,然后再向z軸移動-100px */ transform: rotateX(90deg) translateZ(-100px); background-color: rgba(58, 7, 51, 0.6); } /* 設置第五面 */ .item5 { /* 沿y軸旋轉90度,然后再向z軸移動-100px */ transform: rotateY(90deg) translateZ(-100px); background-color: rgba(241, 142, 75, 0.6); } /* 設置第六面 */ .item6 { /* 沿y軸旋轉90度,然后向z軸移動100px */ transform: rotateY(90deg) translateZ(100px); background-color: rgba(125, 178, 238, 0.6); } /* 設置關鍵幀讓box容器旋轉起來,分別沿x,y,z軸從0旋轉360度 */ @keyframes move { 0% { transform: rotateX(0) rotateY(0) rotateZ(0); } 100% { transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg); } } </style></head><body> <div class="wrapper"> <div class="box"> <div class="item1">1</div> <div class="item2">2</div> <div class="item3">3</div> <div class="item4">4</div> <div class="item5">5</div> <div class="item6">6</div> </div> </div></body></html>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答