本文介紹了HTML5+CSS3 誘人的實(shí)例: 3D立方體旋轉(zhuǎn)動(dòng)畫(huà)實(shí)例,具體如下
效果圖:
知識(shí)點(diǎn):
1、perspective ,transform 的復(fù)習(xí)
2、CSS3 backgroud實(shí)現(xiàn)格格背景,即面上的小格格
3、 @-webkit-keyframes 實(shí)現(xiàn)動(dòng)畫(huà)
HTML:
<body> <div class="stage"> <div class="cube"> <div class="font"></div> <div class="back"></div> <div class="left"></div> <div class="right"></div> <div class="top"></div> <div class="bottom"></div> </div> </div> </body>
前面的3D商品展示中已經(jīng)說(shuō)過(guò)如何制作正方體,并且那個(gè)上面還有數(shù)字,理論上說(shuō)比這個(gè)復(fù)雜,雖然木有這個(gè)炫~這里就不多說(shuō)了。
CSS:
html { background: -webkit-radial-gradient(center, ellipse, #430d6d 0%, #000000 100%); background: radial-gradient(ellipse at center, #430d6d 0%, #000000 100%); height: 100%; } .stage { -webkit-perspective: 1000px; width: 20em; height: 20em; left: 50%; top: 50%; margin-left: -10em; margin-top: -10em; position: absolute; } .cube { position: absolute; width: 100%; height: 100%; -webkit-transform-style: preserve-3d; -webkit-transform: rotateX(-20deg) rotateY(-20deg); } .cube * { background: -webkit-linear-gradient(left, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), -webkit-linear-gradient(top, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px); -webkit-background-size: 2.5em 2.5em; background-color: rgba(0, 0, 0, 0.5); position: absolute; width: 100%; height: 100%; border: 2px solid rgba(54, 226, 248, 0.5); -webkit-box-shadow: 0 0 5em rgba(0, 128, 0, 0.4); } .font { -webkit-transform: translateZ(10em); } .back { -webkit-transform: rotateX(180deg) translateZ(10em); } .left { -webkit-transform: rotateY(-90deg) translateZ(10em); } .right { -webkit-transform: rotateY(90deg) translateZ(10em); } .top { -webkit-transform: rotateX(90deg) translateZ(10em); } .bottom { -webkit-transform: rotateX(-90deg) translateZ(10em); }
同樣:stage作為舞臺(tái),cube設(shè)置子元素的效果為3d,然后每個(gè)面都進(jìn)行旋轉(zhuǎn)和設(shè)置translateZ然后形成立方體。
為每個(gè)面設(shè)置backgroud設(shè)置小格格的代碼:
background: -webkit-linear-gradient( left, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), -webkit-linear-gradient( top, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px); -webkit-background-size: 2.5em 2.5em;
背景設(shè)置,從左到右的3像素的條條,從上到下的3像素的條條;然后設(shè)置背景大小為2.5em 2.5em ,然后將背景重復(fù)顯示,效果如下(我添加了邊框):
現(xiàn)在的完整效果:
可以看到立方體已經(jīng)成型了,最后添加上動(dòng)畫(huà)就行了,不要覺(jué)得動(dòng)畫(huà)很復(fù)雜,其實(shí)很簡(jiǎn)單~
定義一個(gè)動(dòng)畫(huà)幀:
@-webkit-keyframes spin { from { -webkit-transform: translateZ(-10em) rotateX(0) rotateY(0deg); transform: translateZ(-10em) rotateX(0) rotateY(0deg); } to { -webkit-transform: translateZ(-10em) rotateX(360deg) rotateY(360deg); transform: translateZ(-10em) rotateX(360deg) rotateY(360deg); } }
名字為spin,開(kāi)始時(shí) translateZ(-10em) rotateX(0) rotateY(0deg); 結(jié)束時(shí) : translateZ(-10em) rotateX(360deg) rotateY(360deg); 即同時(shí)繞著x,y軸360度旋轉(zhuǎn)。