2019独角兽企业重金招聘Python工程师标准>>>

主要用到动画css3  animation,特别注意当完成正方体的过程中,每个面旋转时这个面的坐标系是跟着变换的,只是他们的相对位置不变,默认的变换基点是(50% 50% 0),我们可以使用transform-origin改变默认基点,也可以按默认的基点来变换,关于rotateX或者rotateY旋转角度的正负区分,是视线在x轴或者Y轴的+方向向负方向看,如果是顺时针则角度为正值,逆时针为负值,下面是按默认基点实现立方体的。

<div class="my3dspace"><div id="cubepages"><div class="page" id="font">1</div><div class="page" id="back">2</div><div class="page" id="upper">3</div><div class="page" id="bottom">4</div><div class="page" id="left">5</div><div class="page" id="right">6</div></div></div>
.my3dspace{margin-top:100px;-webkit-perspective:800;}
#cubepages{width:200px;height:200px;margin:0 auto;-webkit-transform-style:preserve-3d;position:relative;-webkit-animation:rotate 20s infinite;}
.page{position:absolute;width:160px;height:160px;padding:20px;box-sizing:content-box;font-size:100px;text-align:center;line-height:170px;background:#333;color:#fff;-webkit-transition: -webkit-transform 1s linear;}
#font {transform: rotateY(0) translateZ(100px);background:#09c45d;
}#back {transform: translateZ(-100px) rotateY(180deg) ;background:#01bb43;
}#left {transform: rotateY(-90deg) translateZ(100px);background:#dd74f7;
}#right {transform: rotateY(90deg) translateZ(100px);background:#eb12c0;
}#upper {transform: rotateX(90deg) translateZ(100px);background:#03cae2;
}#bottom {transform: rotateX(-90deg) translateZ(100px);background:#11aafa;
}
@-webkit-keyframes rotate {from {transfrom:rotateX(0deg) rotateY(0deg) rotateZ(0deg);}to{transform:rotateX(360deg) rotateY(360deg) rotateZ(360deg);}}

另一个可以拖动的例子

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><title>立方体特效</title><style>* {margin: 0;padding: 0;}body {background: #ccc;}.stage {perspective: 800;perspective-origin: 50% 50%;}.cube {position: relative;width: 200px;height: 200px;margin: 100px auto;background: #ccc;transform-style: preserve-3d;transform: rotateX(-20deg) rotateY(50deg);}.cube .face {width: 100%;height: 100%;position: absolute;top: 0;left: 0;background-size: cover;box-shadow: 0 0 100px #5fbcff;}.front {background: url(images/a5.png);transform: translateZ(100PX);}.back {background: url(images/a1.png);transform: translateZ(-100px);}/*.left{background:url(images/a2.png);transform:translateX(-100PX) rotateY(-90deg)} 也可以写成下面的写法,旋转角度后坐标系统也发生了变化*/.left {background: url(images/a2.png);transform: rotateY(-90deg) translateZ(100PX)}/*.left{background:url(images/a2.png);transform:translateX(-100PX) rotateY(-90deg)} 围绕y轴旋转,图形右侧向里为正,图形右侧向外为负*/.right {background: url(images/a2.png);transform: translateX(100PX) rotateY(90deg)}.up {background: url(images/a3.png);transform: translateY(-100PX) rotateX(90deg)}.down {background: url(images/a3.png);transform: rotateX(-90deg) translateZ(100px)}</style><script>window.onload = function() {var box = document.querySelector("#box")var y = 50var x = 20box.onmousedown = function(ev) {var oEvent = ev || event;var disX = oEvent.clientX - yvar disY = oEvent.clientY - xdocument.onmousemove = function(ev) {var oEvent = ev || event;x = oEvent.clientY - disYy = oEvent.clientX - disXbox.style.transform = "rotateX(" + x + "deg) rotateY(" + y + "deg)"};document.onmouseup = function() {document.onmousemove = nulldocument.onmouseup = null};return false}}</script>
</head><body><div class="stage"><div class="cube" id="box"><div class="front face">front</div><div class="back face">back</div><div class="up face">up</div><div class="down face">down</div><div class="left face">left</div><div class="right face">right</div></div></div>
</body></html>

里面用到的

background-sizecover保持图像的纵横比并将图像拉长或缩放成将完全覆盖背景定位区域的最小大小。

background-size:contain 意思会保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小。

相同点:图片都是等比例缩放

不同点:cover是铺满整个显示区域。如果显示比例和显示区域的比例相差很大某些部分会不显示

contain:正好相反,他是按照某一边来覆盖显示区域的,会有白边

转载于:https://my.oschina.net/u/2612473/blog/881089

CSS3 3D旋转立方体相关推荐

  1. css3 3d旋转图片立方体特效代码

    纯 CSS3 3D 旋转立方体动画特效,该 3D 立方体使用 CSS3 perspective 制作,可以在水平方向.垂直方向和平面视角方向旋转,使用 CSS 来制作立方体动画,效果非常好.下面来看看 ...

  2. CSS3 3D旋转图片立方体特效

    CSS3 3D旋转图片立方体特效代码. 效果图: 这是一个3D的立方体盒子 给盒子添加动画属性 使其可以转动. 原理: 原理其实很简单 我们看到的一个立方体其实就是靠六个平面搭建起来的 如图所示 :六 ...

  3. 3d旋转立方体特效,可自由旋转,超强透视效果的html页面源码

    大家好,今天给大家介绍一款,3d旋转立方体特效,可自由旋转,超强透视效果的html页面源码 (图1).送给大家哦,获取方式在本文末尾. 图1 可以用鼠标自由全角度旋转(图2) 图2 代码完整,需要的朋 ...

  4. CSS3——3D旋转图(跑马灯效果图)

    2019独角兽企业重金招聘Python工程师标准>>> CSS3--3D旋转图(跑马灯效果图) CSS3新增了很多新的属性,可以用很少的代码实现炫酷的动画效果,但由于兼容性各浏览器的 ...

  5. CSS3 3D旋转立方

    ##一.3D中的透视        1.透视是我们观察事物的方式        在美术学中,有一种画法叫做透视画法,他让我们对所观察的物体从二维拓展到三维,也就是说,平面的物体变成了立体,占据了独自的 ...

  6. html中3d哪个方向是x轴,详解用CSS绘制3D旋转立方体

    CSS3D旋转立方体绝对是能充分代表这些年CSS发展新高度的典型案例.从一种只是简单的颜色和尺寸渲染的标记符,CSS现在已经变成了一种能够创造出复杂的.具有艺术感染力的视觉效果的编程语言.动画效果的生 ...

  7. css3 3d旋转兼容模式下,CSS3 3D 转换

    3D Transforms CSS3 允许您使用 3D 转换来对元素进行格式化. 在本章中,您将学到其中的一些 3D 转换方法:rotateX() rotateY() 点击下面的元素,来查看 2D 转 ...

  8. css3 3D旋转特效

    最近自己的网站正在制作,由于是个人网站,所以我傲娇的抛弃了IE,痛快的用起了css3和html5的诸多特效,然而问题亦随之而来.这篇文章的主要讲解在使用css3的3D旋转的时候遇到的文章,错误之处,还 ...

  9. 【181113】C++ 实现可控的3D旋转立方体源代码

    VC++代码实现旋转立方体,没有使用DirectX.OpenGL,允许你拖动滑块改变旋转角度,也能让立方体围绕某一方向旋转,虽然功能不多,但是代码极具参考价值,像这类程序很能考验编程水平. 源码下载地 ...

最新文章

  1. 没有 4.21 ,Linus Torvalds 宣布 Linux 进入 5.0 时代
  2. php array_only,php可以定义数组的常量吗
  3. 计算机网络与综合布线系统设计,【方案】某医院计算机网络综合布线系统设计...
  4. c++类与类的泛化(Generalization)关系
  5. Go语言教程,电子书,PDF格式
  6. Java集合---面试题
  7. 力扣-33 搜索旋转排序数组
  8. Java学习之路 之 注意篇
  9. linux面试题线程与进程,​一道面试题:说说进程和线程的区别
  10. 导入数据库sql 文件乱码
  11. 平面设计个人简历模板
  12. 金属重量计算机在线,金属重量计算器
  13. Typora使用教程
  14. 免费的asp.net 2.0空间
  15. 梦幻西游手游经验任务链计算机,梦幻西游手游经验和道具任务链攻略
  16. ABP应用——修改EF Core
  17. VR全景看家装,让家装不再“纸上谈兵”
  18. 舍友老六,创业五年,现在在华为上班
  19. 定义一个圆形Circle类。属性: r:半径 成员方法:get/set方法 showArea方法:打印圆形面积 showPerimeter方法......
  20. linux下磁盘sda,Linux下磁盘设备文件(sda,sdb,sdc….)变化问题

热门文章

  1. C++中accumulate的用法
  2. 自己做量化交易软件(4)通通量化分析框架构成2
  3. 小虎电商浏览器:多多打单怎么手工打单
  4. 记录一下开发选择文本朗读的安卓App的过程
  5. pycharm Failed to connect to github.com port 443: Timed out
  6. 计算机启动一下就停机,电脑主机亮一下就灭了,电脑开机3秒就循环重启怎么办...
  7. 【爱思考】CISP与CISSP有什么区别?
  8. SAP 教程之 SAP 中的 IDOC
  9. JAVA小记(第一周)
  10. C#结合OpenGL绘图之Tao库