有什么特点
- 近大远小。
- 物体后面遮挡不可见
当我们在网页上构建3D效果的时候参考这些特点就能产出3D效果。
三维坐标系
三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的。
- x轴:水平向右 注意: x 右边是正值,左边是负值
- y轴:垂直向下 注意: y 下面是正值,上面是负值
- z轴:垂直屏幕 注意: 往外面是正值,往里面是负值
3D 转换我们主要学习工作中最常用的 3D 位移 和 3D 旋转
主要知识点
- 3D位移:
translate3d(x,y,z)
- 3D旋转:
rotate3d(x,y,z)
- 透视:
perspective
- 3D呈现
transfrom-style
透视 perspective
在2D平面产生近大远小视觉立体,但是只是效果二维的
- 如果想要在网页产生3D效果需要透视(理解成3D物体投影在2D平面内)。
- 模拟人类的视觉位置,可认为安排一只眼睛去看
- 透视我们也称为视距:视距就是人的眼睛到屏幕的距离
- 距离视觉点越近的在电脑平面成像越大,越远成像越小
- 透视的单位是像素
透视写在被观察元素的父盒子上面的
d:就是视距,视距就是一个距离人的眼睛到屏幕的距离。
z:就是 z轴,物体距离屏幕的距离,z轴越大(正值) 我们看到的物体就越大。
translateZ
translform:translateZ(100px):仅仅是在Z轴上移动。
有了透视,就能看到translateZ 引起的变化了
- translateZ:近大远小
- translateZ:往外是正值
- translateZ:往里是负值
3D旋转 rotate3d
语法
transform:rotateX(45deg)
:沿着x轴正方向旋转 45度transform:rotateY(45deg)
:沿着y轴正方向旋转 45degtransform:rotateZ(45deg)
:沿着Z轴正方向旋转 45degtransform:rotate3d(x,y,z,deg)
: 沿着自定义轴旋转 deg为角度(了解即可)
3D-X轴左手准则
- 左手的手拇指指向 x轴的正方向
- 其余手指的弯曲方向就是该元素沿着x轴旋转的方向
3D-Y轴左手准则
左手的手拇指指向 y轴的正方向
其余手指的弯曲方向就是该元素沿着y轴旋转的方向(正值)
transform:rotate3d(x,y,z,deg):
沿着自定义轴旋转 deg为角度(了解即可)
xyz是表示旋转轴的矢量,是标示你是否希望沿着该轴旋转,最后一个标示旋转的角度。 transform:rotate3d(1,0,0,45deg)
就是沿着x轴旋转 45deg transform:rotate3d(1,1,0,45deg)
就是沿着对角线旋转 45deg
3D呈现 transfrom-style
- 控制子元素是否开启三位立体环境
transfrom-style: flat
子元素不开启3D立体空间 默认transfrom-style: preserve-3d;
子元素开启立体空间- 代码写给父级