纯CSS实现3D图像轮转

CSS演武场今天继续,今天看一个纯css实现的3D图像轮转效果,请大家猛戳研究效果先,也可下载收藏先。

首先看html文件,div.billboard为效果的容器,利用10个div.poster分割图像,每个poster中有三个face,分别用来承载三个图像。

[html] view
plain
copy

  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] view
plain
copy

  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可以使得代码结构清晰,逻辑性强,请大家研读提升!

时间: 2024-10-22 00:37:09

纯CSS实现3D图像轮转的相关文章

纯CSS实现3D按钮效果

今天分享一个用纯CSS实现的3D按钮.css巧妙利用了box-shadow来实现3D物体的立体感,当按钮按下的时候再去修改box-shadow和top值.让人感觉有一种按钮被按下的感觉.css代码非常少,如下所示 a.css-3d-btn{ position: relative; color: rgba(255, 255, 255, 1); text-decoration: none; background-color: rgba(219, 87, 51, 1); font-family: "M

史上最详细 纯CSS打造3D文本滚动

昨天看见了一篇文章关于用纯CSS实现文本滚动,在这里跟大家分享一下. 首先把效果图贴给大家 根据效果图我们很容易发现肯定是要用到3D转换的,如果对这个还不是很了解的可以先看看下面的文章 http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/comment-page-1/ http://www.w3cplus.com/blog/tags/95.html 那么首先我们就

自学篇之--js 提取复选框和单选框的值 和纯css的3D按钮

<html> <head> <meta charset="utf-8" content="text/htnl"> <title>button</title> <style type="text/css"> a.button{ position:relative; width: 80px; height: 50px; background-color: red; display

纯css实现3D字体

下面分别是html,css和js代码: <div class="wrapper"> <h1 contenteditable data-heading="Folded">Folded</h1> </div> $bg: #e6e2df; html, body { height: 100%; } body { background: linear-gradient(45deg, $bg 80%,#c2c1bd 100%);

纯CSS实现3D照片墙

HTML部分: <body> <div class="photo-wrap"> <!-- 舞台 --> <div class="container"> <!-- 容器 --> <div class="img">我是中心</div> <div class="img img01"><img src="images/blo

纯css实现照片墙3D效果

每张照片都有美丽的故事.美好的回忆.家居中的照片墙则帮你展现出这些承载着家庭重要记忆的照片,除了用画框装饰照片挂在墙上外,照片墙还可以演变为手绘照片墙.也经常在网上看到一些关于照片墙的特效案例,决定自己动手试试. v直接上代码 这篇博客呢就是演示一个照片墙的效果.所以废话不多说,直接上代码然后展示特效.有兴趣的道友可以自己练练手试试.也可以改动改动其中的属性多玩玩,自己测试的时候建议用美女的照片,绝对"乐在其中". 1.准备材料:  准备材料就是没什么材料,自己麻溜赶快的去:百度找几张

CSS进阶之纯CSS幻灯片

CSS进阶之纯CSS幻灯片 昨天写的博文有人点了赞,让我激动不已,晚饭赏自己一个鸡腿,.如果我的博文对您有帮助的话,就请您点个赞,您的鼓励是我前进的动力.如果发现文中有错误的地方,也烦请各位大牛指出.以下开始正文. 首先用HTML搭建出基本的框架,如下: <div id="container">     <div class="slide">     <!--将需要展示的图片放在一个ul里面-->         <ul&g

纯CSS 图片演示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" c

纯CSS实现动态晴阴雨雪

1 引言 本期分享一下如何仅用CSS3,实现单标签的动态晴阴雨雪.技术关键点就是"单标签"和"纯CSS".先看下最终效果: 再看看HTML代码: <!--晴--> <div class="weather sunny"></div> <!--阴--> <div class="weather cloudy"></div> <!--雨--> <