网站首页 > 基础教程 正文
点击右上方红色按钮关注“web秀”,让你真正秀起来
前言
前段时间写过一篇《CSS3实现美美哒的图片倒影效果》,里面最后一步,“我们使倒影倾斜一个角度,让整个倒影效果更具有立体效果”,不知道大家有没有联想到用倾斜,我们可以制作一个立方体呢???
今天我们就来用纯css制作一个立方体,主要用到的知识就是transform: rotate,没有了解的可以点击下方文章了解: 《CSS3中transition、transform傻傻分不清楚》
效果预览图:
解析
立方体,是由6个面组成的,所以我们主要是操作6个面,组合成一个立方体就可以实现。
观察者方向的为z轴的正值方向
rotateX 3D空间旋转指定的角度,沿着垂直于X轴的方向顺时针旋转。 rotateY 3D空间旋转指定的角度,沿着垂直于Y轴的方向顺时针旋转。 rotateZ 3D空间旋转指定的角度,沿着垂直于Z轴的方向顺时针旋转。
第一步 - 画出前后2个面
<div class="wrap"> <div class="cube"> <div class="before"></div> <div class="after"></div> </div> </div>
下面的样式,我们对整个盒子沿着垂直于X轴的方向逆时针旋转30°,Y轴逆时针旋转80°,前面元素Z轴位移100px, 后面元素Z轴位移-100px,并Y轴顺时针旋转180°。让效果看起来更明晰,有错位立体感。
/*最外层容器样式*/ .wrap{ width: 200px; height: 200px; margin: 150px auto; position: relative; } /*包裹所有容器样式*/ .cube{ width: 200px; height: 200px; margin: 0 auto; /*preserve-3d 使其子元素具有3D效果*/ transform-style: preserve-3d; transform: rotateX(-30deg) rotateY(-80deg); } .cube div{ position: absolute; width: 200px; height: 200px; opacity: 0.8; } .cube .before{ transform: rotateY(0deg) translateZ(100px); background: red; } .cube .after{ transform: translateZ(-100px) rotateY(180deg); background: blue; }
第二步 - 画出左右2个面
和第一步类似,同样旋转和位移这两个面,使其能够完美拼接
<div class="wrap"> <div class="cube"> <div class="before"></div> <div class="after"></div> <div class="right"></div> <div class="left"></div> </div> </div>
添加样式
.cube .left{ transform: rotateY(90deg) translateZ(100px); background: green; } .cube .right{ transform: rotateY(-90deg) translateZ(100px); background: yellow; }
第三步 - 画出上下2个面
依次类推,完成上下2个面。
<div class="wrap"> <div class="cube"> <div class="before"></div> <div class="after"></div> <div class="right"></div> <div class="left"></div> <div class="top"></div> <div class="bottom"></div> </div> </div>
添加样式
.cube .top{ transform: rotateX(90deg) translateZ(100px); background: purple; } .cube .bottom{ transform: rotateX(-90deg) translateZ(100px); background: pink; }
第四步 - 美化
我们给每个面添加一个背景图片,然后让整个盒子旋转起来,使我们可以看到每个面的内容。
<div class="wrap"> <div class="cube"> <div class="before"> <img src="../images/20180801122834.png" class="pic" /> </div> <div class="after"> <img src="../images/20180911140432.png" class="pic" /> </div> <div class="right"> <img src="../images/20181025165730.png" class="pic" /> </div> <div class="left"> <img src="../images/20181026153658.png" class="pic" /> </div> <div class="top"> <img src="../images/20180911175248.png" class="pic" /> </div> <div class="bottom"> <img src="../images/20180801121251.png" class="pic" /> </div> </div> </div>
添加样式
.pic{ width: 200px; height: 200px; } @-webkit-keyframes rotate{ from{ transform: rotateX(0deg) rotateY(0deg); } to{ transform: rotateX(360deg) rotateY(360deg); } } .cube{ width: 200px; height: 200px; margin: 0 auto; transform-style: preserve-3d; transform: rotateX(-30deg) rotateY(-80deg); -webkit-animation: rotate 20s infinite; animation-timing-function: linear; }
最终效果图:
公告
喜欢小编的点击关注,了解更多知识!
源码地址请点击下方“了解更多”
猜你喜欢
- 2024-10-10 让交互更加生动!有意思的鼠标跟随 3D 旋转动效
- 2024-10-10 「抖音最火」的3D旋转透视酷炫相册,如何用CSS3去实现
- 2024-10-10 纯CSS3实现旋转流星旋转光环效果 css旋转动画效果
- 2024-10-10 CSS3旋转实例学习(附3D旋转实例) css3实现360度旋转
- 2024-10-10 CSS3之日记翻页效果详解 日记翻页视频的模板
- 2024-10-10 如何使用纯CSS技术实现3D书本动态展示效果?
- 2024-10-10 CSS3之3D魔方鼠标控制酷炫效果 3d魔方代码
- 2024-10-10 CSS3专题(五)—实力宠粉,来了,来了,你们要的3D幻灯片来了
- 2024-10-10 css之3D效果——正方体 css正方体照片墙源码
- 2024-10-10 26.HTML 2D和3D变换 html2d旋转
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)