DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 純css實現3D圖像輪轉效果
純css實現3D圖像輪轉效果
編輯:CSS詳解     
這篇文章主要為大家詳細介紹了純css實現3D圖像輪轉效果,CSS制作的3D圖像輪轉,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了純CSS實現3D圖像輪轉效果的具體代碼,供大家參考,具體內容如下

首先看Html文件,div.billboard為效果的容器,利用10個div.poster分割圖像,每個poster中有三個face,分別用來承載三個圖像。

XML/Html Code復制內容到剪貼板
  1. <div class="billboard">
  2. <div class="poster">
  3. <div class="face panel1 p1"></div>
  4. <div class="face panel2 p1"></div>
  5. <div class="face panel3 p1"></div>
  6. </div>
  7. <div class="poster">
  8. <div class="face panel1 p2"></div>
  9. <div class="face panel2 p2"></div>
  10. <div class="face panel3 p2"></div>
  11. </div>
  12. <div class="poster">
  13. <div class="face panel1 p3"></div>
  14. <div class="face panel2 p3"></div>
  15. <div class="face panel3 p3"></div>
  16. </div>
  17. <div class="poster">
  18. <div class="face panel1 p4"></div>
  19. <div class="face panel2 p4"></div>
  20. <div class="face panel3 p4"></div>
  21. </div>
  22. <div class="poster">
  23. <div class="face panel1 p5"></div>
  24. <div class="face panel2 p5"></div>
  25. <div class="face panel3 p5"></div>
  26. </div>
  27. <div class="poster">
  28. <div class="face panel1 p6"></div>
  29. <div class="face panel2 p6"></div>
  30. <div class="face panel3 p6"></div>
  31. </div>
  32. <div class="poster">
  33. <div class="face panel1 p7"></div>
  34. <div class="face panel2 p7"></div>
  35. <div class="face panel3 p7"></div>
  36. </div>
  37. <div class="poster">
  38. <div class="face panel1 p8"></div>
  39. <div class="face panel2 p8"></div>
  40. <div class="face panel3 p8"></div>
  41. </div>
  42. <div class="poster">
  43. <div class="face panel1 p9"></div>
  44. <div class="face panel2 p9"></div>
  45. <div class="face panel3 p9"></div>
  46. </div>
  47. <div class="poster">
  48. <div class="face panel1 p10"></div>
  49. <div class="face panel2 p10"></div>
  50. <div class="face panel3 p10"></div>
  51. </div>
  52. </div>

CSS文件這裡我們用到了sass,用的是sCSS語法。

CSS Code復制內容到剪貼板
  1. //變量初始化
  2. //圖像分塊個數,如要更改,Html需要進行相應的修改
  3. $numPoster:10;
  4. //輪換圖像個數,如要更改,Html需要進行相應的修改
  5. $numFace:3;
  6. //圖像寬度
  7. $width:600px;
  8. //圖像高度
  9. $height:320px;
  10. //盒子的設置
  11. .billboard {
  12. width:$width;
  13. margin:100px auto;
  14. }
  15. //圖像條左浮動
  16. .poster {
  17. float:left;
  18. width:$width/$numPoster;
  19. height:$height;
  20. }
  21. //圖像條面的統一設置,絕對定位、3d動畫設置
  22. .face {
  23. position:absolute;
  24. height:$height;
  25. width:$width/$numPoster;
  26. transform-origin:50% 50% -17px;
  27. backface-visibility: hidden;
  28. transform-style:preserve-3d;
  29. perspective:350px;
  30. }
  31. //圖像條面分別設置背景圖像、動畫
  32. @for $i from 1 through $numFace{
  33. .poster .panel#{$i} {
  34. background:url(http://gx.zptc.cn/whqet/img/#{$i}.jpg);
  35. transform:transformY(360deg/$numFace*($i - 1));
  36. animation: rotateMe#{$i} 10s infinite;
  37. }
  38. @keyframes rotateMe#{$i} {
  39. 0% {
  40. transform:rotateY(360deg/$numFace*($i - 1));
  41. }
  42. 9% {
  43. transform:rotateY(360deg/$numFace*($i - 1));
  44. }
  45. 24% {
  46. transform:rotateY(360deg/$numFace*($i));
  47. }
  48. 42% {
  49. transform:rotateY(360deg/$numFace*($i));
  50. }
  51. 57% {
  52. transform:rotateY(360deg/$numFace*($i + 1));
  53. }
  54. 75% {
  55. transform:rotateY(360deg/$numFace*($i + 1));
  56. }
  57. 90% {
  58. transform:rotateY(360deg/$numFace*($i + 2));
  59. }
  60. 100% {
  61. transform:rotateY(360deg/$numFace*($i + 2));
  62. }
  63. }
  64. }
  65. //圖像條面的背景偏移
  66. @for $i from 1 through $numPoster {
  67. .poster .p#{$i} {background-position:-($width/$numPoster*($i - 1)) top;}
  68. }

使用sass可以使得代碼結構清晰,邏輯性強,請大家研讀提升。

以上就是本文的全部內容,希望對大家的學習有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved