最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

純CSS3實(shí)現(xiàn)3D旋轉(zhuǎn)書本效果

  發(fā)布時(shí)間:2016-03-21 15:04:15   作者:陳小峰   我要評(píng)論
有一些前沿的電商網(wǎng)站已經(jīng)開(kāi)始使用3D模型來(lái)展示商品并支持在線定制,而其中圖書的展示是最為簡(jiǎn)單的一種,無(wú)需復(fù)雜的建模過(guò)程,使用圖片和CSS3的一些變換即可實(shí)現(xiàn)更好的展示效果,簡(jiǎn)潔而實(shí)用,接下來(lái)通過(guò)本文給大家介紹CSS3實(shí)現(xiàn)3D旋轉(zhuǎn)書本效果,需要的朋友一起學(xué)習(xí)

有一些前沿的電商網(wǎng)站已經(jīng)開(kāi)始使用3D模型來(lái)展示商品并支持在線定制,而其中圖書的展示是最為簡(jiǎn)單的一種,無(wú)需復(fù)雜的建模過(guò)程,使用圖片和CSS3的一些變換即可實(shí)現(xiàn)更好的展示效果,簡(jiǎn)潔而實(shí)用。
書本的3D模型是所有商品中最為簡(jiǎn)單的,因?yàn)槠浔举|(zhì)上就是一個(gè)立方體(cube),只是帶有封面/封底和左側(cè)封條。 所以要構(gòu)造一個(gè)3D書本展示,問(wèn)題就被分解為構(gòu)造一個(gè)立方體+旋轉(zhuǎn)+圖片背景。
1. 構(gòu)造一個(gè)立方體
要?jiǎng)?chuàng)建一個(gè)立方體,首先我們需要?jiǎng)?chuàng)建一個(gè)虛擬的三維視覺(jué)空間,這可以通過(guò)設(shè)置包容器元素的perspective屬性獲得。


CSS Code復(fù)制內(nèi)容到剪貼板
  1. .stage {    
  2. width200px;    
  3. height260px;    
  4. perspective: 1000px;    
  5. perspective-origin: center center;// 缺省值,可忽略    
  6. }  
上述代碼把元素放在距離觀察點(diǎn)1000px的地方(Z軸向),并且在X/Y軸向上居中。
CSS Code復(fù)制內(nèi)容到剪貼板
  1. <div class="stage">    
  2. <div class="cube">    
  3. <figure class="back"></figure>    
  4. <figure class="top"></figure>    
  5. <figure class="bottom"></figure>    
  6. <figure class="left"></figure>    
  7. <figure class="right"></figure>    
  8. <figure class="front"></figure>    
  9. </div>    
  10. </div>   
接著,我們?cè)诎萜髟乩锩嫣砑右粋€(gè)立方體元素,6個(gè)邊(上下左右和前后),之所以使用figure,是因?yàn)樾枰С仲N圖。
我們需要根據(jù)書本的厚度和長(zhǎng)寬來(lái)確定立方體各個(gè)面的坐標(biāo)位置,在本例中所用書本模型(一本MySQL書)的絕對(duì)厚度為18.2px,高度260px,寬度197.6px。
那么根據(jù)簡(jiǎn)單的幾何知識(shí),前后面距離立方體中心的距離為18.2/2=9.1px,其中“后”元素需要再翻轉(zhuǎn)一下(即“背”過(guò)去)。
CSS Code復(fù)制內(nèi)容到剪貼板
  1. .front {    
  2. transform: translateZ(9.1px);    
  3. }    
  4. .back {    
  5. transform: rotateY(180deg) translateZ(9.1px);    
  6. }   
用類似的計(jì)算方法,我們可以把其他4條邊放置(平移+旋轉(zhuǎn)變換)到各自的位置,從而拼裝成一個(gè)虛擬的立方體。
CSS Code復(fù)制內(nèi)容到剪貼板
  1. .front {    
  2. transform: translateZ(9.1px);    
  3. }    
  4. .back {    
  5. transform: rotateY(180deg) translateZ(9.1px);    
  6. }    
  7. .top {    
  8. transform: rotateX(90deg) rotateZ(90deg) translateZ(98.8px) translateY(-89.7px);    
  9. width: 18.2px;    
  10. height: 197.6px;    
  11. }    
  12. .bottombottom {    
  13. transform: rotateX(-90deg) rotateZ(90deg) translateZ(161.2px) translateY(-89.7px);    
  14. }    
  15. .left {    
  16. transform: rotateY(-90deg) translateZ(9.1px);    
  17. width: 18.2px;    
  18. }    
  19. .rightright {    
  20. transform: rotateY(90deg) translateZ(188.5px);    
  21. width: 18.2px;    
  22. }  
2. 添加封面
接著我們給前后以及左側(cè)面元素添加背景圖(可以使用一張圖,然后從不同的位置截取),給其他3個(gè)面添加背景顏色,并給“底”面添加陰影效果:
CSS Code復(fù)制內(nèi)容到剪貼板
  1. .front {    
  2. transform: translateZ(9.1px);    
  3. backgroundurl("//wow.techbrood.com/uploads/160301/mysql.png"top rightright;    
  4. background-sizeauto 100%;    
  5. }    
  6. .back {    
  7. transform: rotateY(180deg) translateZ(9.1px);    
  8. backgroundurl("//wow.techbrood.com/uploads/160301/mysql.png"top left;    
  9. background-sizeauto 100%;    
  10. }    
  11. .top {    
  12. transform: rotateX(90deg) rotateZ(90deg) translateZ(98.8px) translateY(-89.7px);    
  13. background#fafafa;    
  14. width: 18.2px;    
  15. height: 197.6px;    
  16. }    
  17. .bottombottom {    
  18. transform: rotateX(-90deg) rotateZ(90deg) translateZ(161.2px) translateY(-89.7px);    
  19. background#ccc;    
  20. width: 18.2px;    
  21. height: 197.6px;    
  22. -webkit-filter: drop-shadow(0 0 26px rgba(0, 0, 0, 0.75));    
  23. }    
  24. .left {    
  25. transform: rotateY(-90deg) translateZ(9.1px);    
  26. backgroundurl("//wow.techbrood.com/uploads/160301/mysql.png"top center;    
  27. background-sizeauto 100%;    
  28. width: 18.2px;    
  29. }    
  30. .rightright {    
  31. transform: rotateY(90deg) translateZ(188.5px);    
  32. background#ddd;    
  33. background-sizeauto 100%;    
  34. width: 18.2px;    
  35. }  
這樣我們就實(shí)現(xiàn)了一個(gè)逼真的3D書本視覺(jué)模型。
3. 添加旋轉(zhuǎn)動(dòng)畫
這個(gè)比較簡(jiǎn)單,使用rotateY方法就可以。
CSS Code復(fù)制內(nèi)容到剪貼板
  1. @-webkit-keyframes rotate {    
  2. 0% {    
  3. transform: rotateY(0) translateX(-18.2px);    
  4. }    
  5. 100% {    
  6. transform: rotateY(360deg) translateX(-18.2px);    
  7. }    
  8. }  

最終的效果圖如下:

關(guān)于CSS3實(shí)現(xiàn)3D旋轉(zhuǎn)書本 的全部?jī)?nèi)容小編就給大家介紹這么多,希望對(duì)大家有所幫助!
原文:http://blog.csdn.net/iefreer/article/details/50931478

相關(guān)文章

最新評(píng)論

甘谷县| 淮南市| 乐平市| 五莲县| 宁城县| 织金县| 吉木乃县| 桂平市| 张家界市| 邢台县| 新民市| 安达市| 汾阳市| 宁城县| 嘉义市| 会理县| 云梦县| 新绛县| 昌江| 格尔木市| 和龙市| 明星| 潍坊市| 本溪| 商河县| 三原县| 泗洪县| 通州区| 黔江区| 中方县| 沙坪坝区| 重庆市| 屏东县| 溆浦县| 建德市| 禄劝| 瓦房店市| 永州市| 新安县| 上蔡县| 蓝山县|