简单介绍

上网易前端微专业课程,里面有一个课外作业是实现一个3D旋转立方体。花了点时间做了下。还有点意思。写个简单教程。供大家学习。

先放上终于要实现的效果

注:代码在chrome 43.0.2357.124 m正常,其它浏览器未測试

步骤

1.在二维平面上放置好各个面

大家小时候可能都玩过“叠盒子”,就是在一张纸上线画出一个盒子的展开图,然后裁剪叠出一个盒子,相似下图这样:

看到这个应该有点思路了吧,我们这里也按这个思路把立方体各个面先在平面上摆好,然后通过旋转各个面,组成立方体。

效果见html,css,output">代码-1

上面的代码有一个地方略有不同。就是前和后是叠在一起的。这个能够这样理解。我们先把“前”这个面剪下来,放在”后“上面。最后叠盒子的时候,把”前“垂直屏幕向外移动出来,完毕拼盒子。为什么要这么做?由于这样”前“面移动比較少,写的CSS3样式更少

2.在三维空间旋转面,组成立方体盒子

最关键的一步到了,通过CSS3属性实现各个面的旋转。这里给出一个”左“面和”前“面的核心代码:

.left{

transform: rotateY(90deg); // 沿Y轴旋转90度

transform-origin: right; // 以矩形的右边框为Y轴

}

.front{

transform: translateZ(150px); //沿垂直屏幕往外移动150px

}

关于旋转移动的属性rotateX, rotateY, rotateZ。translateZ等,请參考张鑫旭的博文

以此类推,我们能够把各个面都旋转好,立方体盒子已经拼好了。终于效果见html,css,output">代码-2

哦,这里另一行代码值得一提

.stage{

perspective: 800px; //翻译成景深或视距

}

有个网友做了一个非常好的演示样例说明perspective的概念

3.加入立方体旋转动画

静态盒子完毕之后,下一步就是加入旋转动画了,主要思路是让包含这个盒子的容器div转起来,盒子就跟着转了。以下是沿着Z轴转的一个演示样例代码

@keyframes rotate-frame{ //定义动画关键帧

0%{

transform: rotateZ(0deg);

}

100%{

transform: rotateZ(360deg);

}

}

.container{

transform-style:preserve-3d; //容器内的元素随着容器一起转

animation: rotate-frame 3s infinite linear; //应用关键帧动画

}

4.加点料

这样转有点傻。最后改成先沿X轴转。在沿Y轴转,主要是关键帧设置的变化。

@keyframes rotate-frame{

0% {

transform: rotateX(0deg);

}

25% {

transform: rotateX(180deg);

}

50% {

transform: rotateX(360deg) rotateY(0deg);

}

75% {

transform: rotateX(360deg) rotateY(180deg);

}

100% {

transform: rotateX(360deg) rotateY(360deg);

}

}

.container{

transform-origin: 50% 50% 75px; //改变旋转參考的平面

}

终于效果代码-4

小结

通过这个样例能基本熟悉CSS3 transform相关的属性,做了一个小的立方体,不足之处请小伙伴们指正。

不禁脑洞再开。能不能做一个3D的魔方,相似于现实中玩的魔方那样的。实现各面的旋转,甚至自己主动解魔方,貌似挺有意义的,有时间试试~

java3D实现空间立方体,纯CSS3实现一个旋转的3D立方体盒子相关推荐

  1. 纯CSS3制作炫酷的3D相册

    纯CSS3制作炫酷的3D相册 整体效果如下所示: 整体代码如下所示: html中的代码 <!DOCTYPE html> <html lang="en"> & ...

  2. 教你用CSS3做一个旋转的宇宙星球

    教你用CSS3做一个旋转的宇宙星球 可能略有瑕疵,无非就是先画一个圆圈,把小球定位到上面,然后再让圆圈旋转即可 直接上效果图 代码 <!DOCTYPE html><html lang ...

  3. 4. 纯 CSS 创作一个金属光泽 3D 按钮特效

    4. 纯 CSS 创作一个金属光泽 3D 按钮特效 原文地址:https://segmentfault.com/a/1190000014599280 HTML代码: <div class=&qu ...

  4. css旋转按钮制作,css3 旋转按钮 使用CSS3创建一个旋转可变色按钮

    想把访客引到另一个页面?添加一个很炫的按钮是个很好的办法 !今天的文章提出了如何使用css3创建一个旋转,旋转,可变色按钮. 这是一个演示旋转的css3按钮.让我们先从html: 复制代码代码如下: ...

  5. 使用纯CSS3实现一个3D旋转的书本

    有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种, 无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用. 书本的3D模 ...

  6. html设计动画小黄人,用纯css3画一个小黄人并实现动画效果

    [摘要] 本文用纯css3画出一个动态的小黄人页面,代码简洁高效,是一个非常实用的CSS3学习案例. 不得不说CSS3的出现让网页更加绚丽生动,以前需要用图片来实现的效果现在完全可以通过几段css来解 ...

  7. html3d旋转发光立方体,纯css3实现的3D立体动态旋转立方体特效

    CSS3 3D立方体多边形动画特效 - 代码笔记 *{ margin:0 auto; padding:0; } @keyframes rotate{ 0%{ transform:rotateX(0de ...

  8. 了解3D世界的黑魔法 - 纯Java构造一个简单的3D渲染引擎

    前言 当今用于游戏和多媒体的3D渲染引擎在数学和编程的复杂性上足以令大多数人望而生畏,从编程接口的OpenGL再到逼真到令人叹为观止的UE5(虚幻五)引擎,后者单单引擎本身(不含调试)的大小就达到了将 ...

  9. CSS3 做一个旋转的立体3D正方形 动效核心【前端就业课 第二阶段】CSS 零基础到实战(07)

    若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证. 一.transform-origin transform-o ...

最新文章

  1. 强化学习与3D视觉结合新突破:高效能在线码垛机器人
  2. 树上启发式合并问题 ---- D. Tree and Queries[树上启发式合并+树状数组]
  3. 解析#pragma指令
  4. Pixhawk原生固件以往代码版本的下载
  5. 冲刺一阶段———个人总结04
  6. jackson 序列化_jackson序列化与反序列化的应用实践
  7. 《CLR via C#》读书笔记 之 参数
  8. 使用Spring Boot打造文件文档在线预览平台
  9. centos web服务器---sysctl.conf调优参数
  10. [Color]彩色转灰度算法彻底学习
  11. 一个dsp最小系统至少要有_苏州设公厕指示牌,每500米至少要有一个
  12. etcdctl的使用
  13. 浅谈游戏《武士刀:零》——赛博朋克风格城市中的刀光剑影
  14. Oracle 实例恢复--转自沙弥的世界
  15. 64位Slitaz Linux下Glibc 2.20编译式更新安装成功
  16. Windows 10下载安装openjdk及环境变量配置(以openjdk 8为例)
  17. Java job interview:运用所学理论、知识和技能解决实际问题的能力
  18. FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
  19. 022-企业站:纽曼移动端微官网实战
  20. 惠普之路——HP公司发展史

热门文章

  1. 学编程好比学游泳——欠炼
  2. window.btoa与window.atob
  3. 算法(赛马问题)图解
  4. 爱江山更爱美人服务器维修怎么,爱江山更爱美人落星院详细玩法攻略
  5. 微信小程序:点击图片进行预览
  6. resultful使用
  7. 身份证号码前6位表示的地区对照表
  8. pandas学习之concat合并及读写CSV文件
  9. 金秋10月,结婚的季节啊-参加同学婚宴安排
  10. 用科技点亮公益力量,皮卡智能仅用2张照片,还原了老人一生的故事