教你使用html+css制作一個(gè)3D立體相冊(cè)
前言
用css的transform屬性做一個(gè)3D相冊(cè)~~~
值translate表示偏移;
scale表示縮放;
rotate就是轉(zhuǎn)動(dòng)。
一、先看效果
二、實(shí)現(xiàn)步驟
1.我們知道一個(gè)正方體有6個(gè)面,所以定義一個(gè)父親元素然后定義6個(gè)子元素作為6個(gè)面。每個(gè)面放一張圖片。里面q1表示前面,h2表示后面,以此類推,就是首拼音。
<div class="baba"> <div class="q1"> <img src="3d/1q.png"> </div> <div class="h2"> <img src="3d/2h.png"> </div> <div class="z3"> <img src="3d/3z.png"> </div> <div class="y4"> <img src="3d/4y.png"> </div> <div class="s5"> <img src="3d/5s.png"> </div> <div class="x6"> <img src="3d/6x.png"> </div> </div>
2.讓父元素定位,設(shè)立方體長(zhǎng)寬,然后必須添加屬性transform-style: preserve-3d;
.baba{ position: relative; width: 300px; height: 300px; transform-style: preserve-3d; }
3.讓子元素和圖片跟父元素一樣長(zhǎng)寬。讓它有點(diǎn)透明度。
.baba div{ position: absolute; width: 100%; height: 100%; opacity: 0.8; } .baba img{ width: 100%; height: 100%; }
4.重要一步,給6個(gè)面設(shè)置位置。
.q1{ transform: translateZ(150px); } .h2{ transform: rotateY(180deg) translateZ(150px); } .z3{ transform: rotateY(-90deg) translateZ(150px); } .y4{ transform: rotateY(90deg) translateZ(150px); } .s5{ transform: rotateX(90deg) translateZ(150px); } .x6{ transform: rotateX(-90deg) translateZ(150px); }
5.這樣立方體就設(shè)置好了,不過我們看不出來(lái),所以讓立方體轉(zhuǎn)起來(lái)。給父元素添加animation屬性
.baba{ position: relative; width: 300px; height: 300px; transform-style: preserve-3d; animation: zuan 6s linear alternate infinite; }
@keyframes zuan{ 0%,5%{ transform: rotateY(90deg); } 20%,25%{ transform: rotateY(180deg); } 40%,45%{ transform: rotateY(270deg); } 60%,65%{ transform: rotateX(-90deg); } 80%,85%{ transform: rotateX(0deg); } 95%,100%{ transform: rotateX(90deg); } }
完整代碼:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ padding: 0; margin: 0; box-sizing: border-box; } body{ height: 100vh; display: flex; justify-content: center; align-items: center; background: radial-gradient(circle, #e4e7e4, #111111); } .baba{ position: relative; width: 300px; height: 300px; transform-style: preserve-3d; animation: zuan 6s linear alternate infinite; } .baba div{ position: absolute; width: 100%; height: 100%; opacity: 0.8; } .baba img{ width: 100%; height: 100%; } .q1{ transform: translateZ(150px); } .h2{ transform: rotateY(180deg) translateZ(150px); } .z3{ transform: rotateY(-90deg) translateZ(150px); } .y4{ transform: rotateY(90deg) translateZ(150px); } .s5{ transform: rotateX(90deg) translateZ(150px); } .x6{ transform: rotateX(-90deg) translateZ(150px); } @keyframes zuan{ 0%,5%{ transform: rotateY(90deg); } 20%,25%{ transform: rotateY(180deg); } 40%,45%{ transform: rotateY(270deg); } 60%,65%{ transform: rotateX(-90deg); } 80%,85%{ transform: rotateX(0deg); } 95%,100%{ transform: rotateX(90deg); } } </style> </head> <body> <div class="baba"> <div class="q1"> <img src="3d/1q.png"> </div> <div class="h2"> <img src="3d/2h.png"> </div> <div class="z3"> <img src="3d/3z.png"> </div> <div class="y4"> <img src="3d/4y.png"> </div> <div class="s5"> <img src="3d/5s.png"> </div> <div class="x6"> <img src="3d/6x.png"> </div> </div> </body> </html>
總結(jié)
3D旋轉(zhuǎn)立方體相冊(cè)做好了~~~~
到此這篇關(guān)于教你使用html+css制作一個(gè)3D立體相冊(cè)的文章就介紹到這了,更多相關(guān)html+css制作3D立體相冊(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript圖片放大鏡效果代碼[代碼比較簡(jiǎn)單]
實(shí)用漂亮的放大鏡效果,基于JavaScript代碼實(shí)現(xiàn),貌似代碼不太多,但效果確實(shí)不錯(cuò),因調(diào)用的圖片比較大,所以運(yùn)行效果后請(qǐng)稍等一會(huì),等待圖片加載。2011-02-02利用javascript解決圖片縮放及其優(yōu)化的代碼
說(shuō)起IE6,真是讓我們這些做前端的人又恨又無(wú)奈,許多屬性都不支持。可不少用戶還在用它,我們也不能無(wú)視。為了兼容,我只好跟同事請(qǐng)教了一下,然后針對(duì)IE6用js縮放來(lái)顯示圖片并進(jìn)行了一些細(xì)節(jié)上的優(yōu)化2012-05-05js 加載時(shí)自動(dòng)調(diào)整圖片大小
又一個(gè)javascript自動(dòng)調(diào)整圖片大小的腳本2008-05-05JavaScript 控制圖片改變重疊順序的代碼(鼠標(biāo)移動(dòng)切換)
JavaScript實(shí)例,通過控制Html網(wǎng)頁(yè)元素,來(lái)控制圖片的重疊順序,鼠標(biāo)移上某一張,那一張就顯示在最前面,移動(dòng)到最后層,它會(huì)顯示在最前,有意思吧,其實(shí)挺簡(jiǎn)單。2010-10-10