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

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

  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语法。

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

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

  1. 纯CSS实现3D正方体动画效果

    前言 纯CSS实现3D正方体动画效果,此方法是通过transform的旋转(rotate)和位移(translate)实现的,具体效果是鼠标滑过时正方体的一个面会产生位移 效果图 ​

  2. 纯CSS实现3D按钮效果

    今天分享一个用纯CSS实现的3D按钮.css巧妙利用了box-shadow来实现3D物体的立体感,当按钮按下的时候再去修改box-shadow和top值.让人感觉有一种按钮被按下的感觉.css代码非常 ...

  3. 纯CSS 常见3D实例

    一.正方体 我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造.(据体构造在代码中)成平图如下: 代码如下: <!DOCTYPE html> & ...

  4. 纯CSS做3D旋转魔方

    昨天偶然看见网友(简单说 用CSS做一个魔方旋转的效果)做的一个3D旋转魔方  效果就是本博客右侧公告栏所示 在这里把做法展现出来 感兴趣的可以试试  做成自己特有的魔方 <!DOCTYPE h ...

  5. 纯CSS绘制3D立方体

    本篇记录的是使用CSS3绘制3D立方体,并旋转起来. 我的思路: 1️⃣ 首先,用div元素画6个正方形摞在一起放在画布中间.为了区分,分别给每个div选择了不同的颜色,并且设置为半透明方便透视. 2 ...

  6. 纯CSS实现3D照片墙

    HTML部分: <body> <div class="photo-wrap"> <!-- 舞台 --> <div class=" ...

  7. 纯css实现3D字体

    下面分别是html,css和js代码: <div class="wrapper"> <h1 contenteditable data-heading=" ...

  8. 纯CSS炫酷的3D旋转

    <html><head><meta charset="utf-8"><title>纯CSS炫酷的3D旋转</title> ...

  9. 纯CSS炫酷3D旋转立方体进度条特效

    在网站制作中,提高用户体验度是一项非常重要的任务.一个创意设计不但能吸引用户的眼球,还能大大的提高用户的体验.在这篇文章中,我们将大胆的将前面所学的3D立方体和进度条结合起来,制作一款纯CSS3的3D ...

随机推荐

  1. 跨域问题 Uncaught DOMException: Blocked a frame with origin。。。

    第三方系统内嵌 到iframe中的 跨域问题. 解决方案: http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html

  2. HDU 1525 类Bash博弈

    给两数a,b,大的数b = b - a*k,a*k为不大于b的数,重复过程,直到一个数为0时,此时当前操作人胜. 可以发现如果每次b=b%a,那么GCD的步数决定了先手后手谁胜,而每次GCD的一步过程 ...

  3. UC手机浏览器(U3内核)相关文档整理

    Note:绝大多数API在IOS版下不支持,使用前请自行测试. UC官方的开发者中心:http://www.uc.cn/business/developer.shtml U3内核定制<meta& ...

  4. ASP.net--全局程序文件:Global.asax

    ASP.NET应用程序只能有一个Global.asax文件,该文件支持许多项. •Application_Start:在应用程序接收到第一个请求时调用,这是在应用程序中给应用程序级的变量赋值或指定对所 ...

  5. bzoj1190 [HNOI2007]梦幻岛宝珠

    传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1190 [题解] 首先,我们把所有物品都分解成$a\times 2^b$的形式,然后把物品按 ...

  6. UNIX环境高级编程 第6章 系统数据文件和信息

    UNIX系统的正常运作需要用到大量与系统有关的数据文件,例如系统用户账号.用户密码.用户组等文件.出于历史原因,这些数据文件都是ASCII文本文件,并且使用标准I/O库函数来读取. 口令文件 /etc ...

  7. 【划水闲谈】Terraria 1.3.5更新

    我知道这本应是一个算法博客,但又有谁规定了不能发点其他内容呢? Terraria,一个有趣的沙盒游戏.在这里,你可以建造,挖掘,开始一次又一次新的冒险. 4月19日,Re-Logic承诺的官方中文版终 ...

  8. PyTorch快速入门教程七(RNN做自然语言处理)

    以下内容均来自: https://ptorch.com/news/11.html word embedding也叫做word2vec简单来说就是语料中每一个单词对应的其相应的词向量,目前训练词向量的方 ...

  9. C++ 之Boost 实用工具类及简单使用

    本文将介绍几个 Boost 实用工具类,包括 tuple.static_assert.pool.random 和 program_options等等.需要对标准 STL 具备一定的了解才能充分理解本文 ...

  10. poj3636

    题意:每个物品有两个属性:长和宽(长宽不可互换).如果一个物品的长和宽均大于另一个物品,则这个物品可以罩住另一个物品,用这种罩住物品的方法将物品分组,一组之内的物品可以一个罩住一个的全部罩起来.问最少 ...