css3 <3D 转换>

css3 <3D 转换>

通过 CSS3 3D 转换,能够使我们对元素在2d空间内模拟3D运动,如:元素绕着Y轴和X轴旋转,沿着Z轴进行移动、缩放、拉长或拉伸等等。

3D兼容性

css3D属性

属性描述CSS
transform 向元素应用 2D 或 3D 转换函数。 3
transform-origin 允许你改变被转换元素的位置。 3
transform-style 规定被嵌套元素如何在 3D 空间中显示。flat子元素将不保留其 3D 位置。preserve-3d 子元素将保留其 3D 位置 3
perspective 规定 3D 元素的透视效果。 3
perspective-origin 规定观察者的位置。 3
backface-visibility 定义元素在不面对屏幕时是否可见。visible 背面可见hidden 背面不可见 3

 

css3<3D 转换>函数(transform-functions-3d)

函数描述
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。

 

3D 实例

要定义3d,那么首先需要的是在平面上建立一个三维的场景

 

3D场景的建立

.box{
  width:800px;
  height:800px;
  perspective: 2000px; /*定义透视点*/
  perspective-origin: center center ; /*默认的观察者位置是在中间的。当然我们可以改变。*/
}

 

3D背面的元素可见

当一个元素是背靠我们的时候,默认时候我们是看不见这个元素的

.box{
  width:800px;
  height:800px;
  backface-visibility: visible;//这样我们就可以看见这个元素的背面了。
}

改变3D元素的变换轴

默认的变化中心的点都是在中心的

div{
  transform-origin: center center 200px; //这个时候我们将这个元素的变化轴向Z轴移动了200px
}

3D旋转变化

默认是z轴旋转的,有了3d之后,那么x和y的变化就可以看见效果了

div{
  width:200px;
  height:200px;
  transform:rotate(360deg);
//transform:rotate3d(1,100,10,360deg);
//transform:rotate3d(x,y,z,Ddeg);   由原点指向(x,y,z)成方向轴,然后左手定则,确定旋转方向,进行D角度旋转,得到特效结果。
}

3D平移变化

div{
  width:200px;
  height:200px;
  transform:translate3d(200px,200px,200px);
//transform:rotateZ(200px);  
}
原文地址:https://www.cnblogs.com/janewh/p/13891937.html