3D转换transfrom
目录
前端开发中的三维坐标系位置
- x轴:水平向右 注意:x右边是正值,左边是负值
- y轴:垂直向下 注意:y下面是正值,上面是负值
- z轴:垂直屏幕 注意:往外面是正值,往里面是负值
一、透视(视距)和3D呈现
1. 透视(视距) perspective
- 透视写到被观察元素的父盒子上面
- perspective值越小,物体看起来越大
- perspective和3D搭配使用,加在父盒子上解锁3D特效
2. 3D呈现transform-style
- 控制子元素是否开启三维立体环境
- transform-style: flat; 默认值 不开启3D立体空间
- 写给父级元素,影响的是子元素
body {
/* 代码写给父级,让子元素保持3D立体空间环境且可视 */
perspective: 200px;
transform-style: preserve-3d;
}
二、3D位移(移动):translate3d(x,y,z)
3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向
1. translateZ
transform: translateX(100px);仅仅是在x轴上移动
transform: translateY(100px);仅仅是在y轴上移动
transform: translateZ(100px);仅仅是在z轴上移动
2. translate3d(x,y,z)
transform: translate3d(400px, 100px, 100px);
transform: translate3d(0, 100px, 100px);xyz是不能省略的,如果没有就写0
三、3D旋转:rotate3d(x,y,z,deg)
x轴旋转方向:正值往后倒,负值往前摔
transform: rotateX(-45deg);沿着x轴逆方向旋转45度,等价于transform: rotate3d(1, 0, 0, 45deg);
y轴旋转方向:正值往右转,负值往左转
transform: rotateY(45deg);沿着y轴正方向旋转45度,等价于transform: rotate3d(0, 1, 0, 45deg);
z轴旋转方向:正值往下转(相当于2D顺时针),负值往上转(逆时针)
transform: rotateZ(45deg);沿着z轴正方向旋转45度,等价于transform: rotate3d(0, 0, 1, 45deg);