教你使用html+css制作一個3D立體相冊
前言
用css的transform屬性做一個3D相冊~~~
值translate表示偏移;
scale表示縮放;
rotate就是轉(zhuǎn)動。
一、先看效果


二、實現(xiàn)步驟
1.我們知道一個正方體有6個面,所以定義一個父親元素然后定義6個子元素作為6個面。每個面放一張圖片。里面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è)立方體長寬,然后必須添加屬性transform-style: preserve-3d;
.baba{
position: relative;
width: 300px;
height: 300px;
transform-style: preserve-3d;
}3.讓子元素和圖片跟父元素一樣長寬。讓它有點透明度。
.baba div{
position: absolute;
width: 100%;
height: 100%;
opacity: 0.8;
}
.baba img{
width: 100%;
height: 100%;
}
4.重要一步,給6個面設(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è)置好了,不過我們看不出來,所以讓立方體轉(zhuǎn)起來。給父元素添加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)立方體相冊做好了~~~~
到此這篇關(guān)于教你使用html+css制作一個3D立體相冊的文章就介紹到這了,更多相關(guān)html+css制作3D立體相冊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用javascript解決圖片縮放及其優(yōu)化的代碼
說起IE6,真是讓我們這些做前端的人又恨又無奈,許多屬性都不支持。可不少用戶還在用它,我們也不能無視。為了兼容,我只好跟同事請教了一下,然后針對IE6用js縮放來顯示圖片并進(jìn)行了一些細(xì)節(jié)上的優(yōu)化2012-05-05
JavaScript 控制圖片改變重疊順序的代碼(鼠標(biāo)移動切換)
JavaScript實例,通過控制Html網(wǎng)頁元素,來控制圖片的重疊順序,鼠標(biāo)移上某一張,那一張就顯示在最前面,移動到最后層,它會顯示在最前,有意思吧,其實挺簡單。2010-10-10

