目录

一、目标效果

二、预备知识

1.坐标轴

2.旋转动画

三、代码


一、目标效果

二、预备知识

1.坐标轴

想要实现3D旋转立方体的效果就必须用到了解网页中的坐标轴是怎样的,然后根据坐标轴来旋转图片。与我们平常所见的坐标轴不同,浏览器中的x轴是从左到右的、y轴是从上到下的、z轴是从后到前的。

我们可以通过一些方法来控制图片在坐标轴上面移动。

方法 功能
translateX(x) 沿着 X 轴移动元素。
translateY(y) 沿着 Y 轴移动元素。
translateZ(z) 沿着 Z 轴移动元素。
translate(x,y) 沿着 X 和 Y 轴移动元素。
translate3d(x,y,z) 分别定义沿着三个轴移动的距离

2.旋转动画

实现旋转的立方体我们首先要有一个立方体。制作立方体的过程非常简单,只需要六张图片,两两一组。第一组图片一个沿着最右边,相对y轴旋转-90度;一个沿着最左边,相对y轴旋转90度。第二组图片一个沿着最底边,相对x轴旋转90度;一个沿着最上边,相对x轴旋转-90度。第三组图片一个不动,另一个沿着z轴向后移动一个正方形的边长的距离。这样就一个图片立方体就制作完成了。

img:nth-child(2) {/* 设置旋转边 */transform-origin: right;/* 设置旋转角度 */transform: rotateY(-90deg);
}

实现旋转效果需要用到动画和3D效果。如果对动画还不是很了解的朋友可以参考CSS3-动画_可乐喽的博客-CSDN博客这篇文章,这里只说一下怎么实现3D效果。首先是“perspective”属性,个人理解是这个属性定义了我们看这个元素以及其子元素的视角,其值就是视距,也就是我们的眼睛距离成像的平面的距离。其次是"transform-style"这个属性定义了显示形式,由于我们需要3D效果,所以我们把它定义为“preserve-3d”。最后是“transform-origin”属性,该属性定义旋转的中心点,图像的旋转就是围绕着这个点进行的。

三、代码

 <!DOCTYPE html><html lang="en">​<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>3D立方体</title><style>* {margin: 0;padding: 0;}​.box .wrap {width: 300px;height: 300px;margin: 0 auto;}​.box {margin: 200px auto;/* 定义视角 */perspective: 1000px;}​.wrap {position: relative;width: 100%;height: 100%;/* 3d效果显示 */transform-style: preserve-3d;animation: turn 3s linear infinite;/* 定义旋转的位置 */transform-origin: center center -150px;}img {/* 将图像设置为正方形 */width: 300px;height: 300px;position: absolute;top: 0;left: 0;/* 设置图像的透明度 */opacity: .8;}​/* 一个图像沿着最右边 相对y轴旋转-90度 */img:nth-child(2) {transform-origin: right;transform: rotateY(-90deg);}​/* 一个图像沿着最左边 相对y轴旋转90度 */img:nth-child(3) {transform-origin: left;transform: rotateY(90deg);}​/* 一个图像沿着最底边 相对x轴旋转90度 */img:nth-child(4) {transform-origin: bottom;transform: rotateX(90deg);}​/* 一个图像沿着最上边 相对x轴旋转-90度 */img:nth-child(5) {transform-origin: top;transform: rotateX(-90deg);}​/* 一个图像沿z轴向后移动300px */img:last-child {transform: translateZ(-300px);}/* 定义旋转动画 */@keyframes turn {from {transform: rotate3d(1, 1, 0, 0deg);}​to {transform: rotate3d(1, 1, 0, 360deg);}}</style></head>​<body><div class="box"><div class="wrap"><img src="https://img2.woyaogexing.com/2022/07/30/0e093e8294fd0c28!400x400.jpg" alt=""><img src="https://img2.woyaogexing.com/2022/07/30/a718129a8cc564d3!400x400.jpg" alt=""><img src="https://img2.woyaogexing.com/2022/07/30/cc2796029e811a52!400x400.jpg" alt=""><img src="https://img2.woyaogexing.com/2022/07/28/6b892a9d495f666b!400x400.jpg" alt=""><img src="https://img2.woyaogexing.com/2022/06/23/c61bcd84592137fa!400x400.jpg" alt=""><img src="https://img2.woyaogexing.com/2022/06/23/940c4e898b4b3c9e!400x400.jpg" alt=""></div></div></body>​</html>

用HTML+CSS实现旋转的立方体相关推荐

  1. html5css写旋转立方体,css练习-旋转的立方体

    1. 建立HTML结构 立方体有六个面,分别使用六个div 外面使用wrap容器包裹,作为整体,用来执行旋转动画 2. 整体样式 body { perspective: 1000px; } .wrap ...

  2. 如何用css3制作一个旋转的立方体

    css3增加的动画效果使得前端制作某些动画更加方便,流畅,如何制作一个最简单的会旋转的立方体呢?话不多说,直接上代码! html代码如下,需要一个大的div包裹六个div作为立方体的六个表面 < ...

  3. 纯用CSS来实现3D立方体旋转效果

    这次用纯CSS来实现3D立方体旋转效果 效果如下(可以想象成一个旋转的立方体) HTML部分 首先 创建一个ul标签 在其ul标签下的6个li标签 相当于正方体的6个面 <body>< ...

  4. OpenGL设置透视投影并渲染旋转的立方体

    OpenGL设置透视投影并渲染旋转的立方体 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <GLXW/glxw.h> #includ ...

  5. HTML+CSS制作旋转的loading效果

    HTML+CSS制作旋转的loading效果 效果图如下: HTML部分源代码如下: <!DOCTYPE html> <html lang="en">< ...

  6. css实现旋转的小流星动画

    效果如下: 完整代码如下 : <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  7. 用Css3实现旋转的立方体

    通过Css3,我们能够创建动画,这可以在许多网页中取代一些JavaScript中复杂的动画效果的写法,下面让我们用css3实现一个旋转的立方体吧. Html部分: 1)先给六个面写一个公共的类:cub ...

  8. js设置css色相旋转_色相旋转颜色方案是否保留了对色盲友好的能力?

    js设置css色相旋转 Hue rotation is often an easy way to change the appearance of a plot or figure without t ...

  9. three.js 画一个旋转的立方体

    学习交流欢迎加群:789723098,博主会将一些demo整理共享 试想一下,如果我们的周围的事物都是静止的,那将是多么无聊的一个世界:同样的,我们创建出的场景如果是静止的,只能满足我们一时的视觉体验 ...

最新文章

  1. Cocos2d-CCScene所有场景切换特效[转载]
  2. 重学TCP协议(7) Timestamps 选项
  3. java基于文件的map实现_Mybatis中返回Map的实现
  4. php5.4全局变量,PHP 5 全局变量 - 超全局变量
  5. HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)
  6. php常用技术与thinkphp5,thinkPHP5框架路由常用知识点汇总
  7. 只要听说过电脑的人都能看懂的网上pdf全书获取项目
  8. oracle注意事项
  9. Android实现计算器布局(线性布局)
  10. 实用性超高的工具箱多功能微信小程序源码下载支持流量主
  11. Eclipse下搭建安卓开发环境(初步)
  12. Thoughtworks笔试
  13. 计算机专业发表论文要多久,现代计算机发表论文需要多长时间
  14. Microsoft Xps Document Writer 虚拟打印机安装
  15. java ee字体_JavaEE——CSS字体样式
  16. canvas下雪效果(原生js)
  17. vb.net 简单取摄像头图片_【图片】大车监控如何安装?_大车监控吧
  18. 7.3.1 B树及其基本操作
  19. r语言中trifit怎么用_【r-介绍|分享】使用R进行生存分析
  20. 文字下划线从中间往两头延伸动画

热门文章

  1. C/C++业内行情分析学习计划
  2. Pygame 官方文档 - pygame.transform
  3. 语音百亿+、刷脸十万+,百度大脑如何炼成AI第一?
  4. 论测试与项目管理的关系
  5. JS中,用回车键代替TAB键
  6. k8s-资源控制器RC、RS 、deployment
  7. Smt贴片机工作流程
  8. 入坑树莓派(2)——树莓派4B与手机蓝牙通信
  9. 第二周JAVA课后总结
  10. 有道云客户端图片不显示的问题