3D 转换
- transform 属性不止能实现 2D 转换,也可以制作 3D 立体转换效果,比普通的 x、y 轴组成 的平面效果多了一条 z 轴,如下图:
![*](https://img-blog.csdnimg.cn/20210407215708136.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzY0MDE2MA==,size_16,color_FFFFFF,t_70)
- 本文目录如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409174548626.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzY0MDE2MA==,size_16,color_FFFFFF,t_70#pic_center)
一、透视属性
1.应用背景:
- 电脑显示屏是一个 2D 平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现, 通过透视可以实现此目的。
- 透视可以将一个 2D 平面,在转换的过程当中,呈现 3D 效果。
- 透视特点:近大远小。
- 注意:并非任何情况下需要透视效果,根据开发需要进行设置,如果需要展示 z 轴的变化, 则设置透视效果。
2.透视属性 perspective
- 属性名:
perspective
- 作用:设置在 z 轴的视线焦点的观察位置,从而实现 3D 查看效果。
- 属性值:像素值;
- 数值越大,观察点距离 z 轴原点越远,图形效果越完整且接近原始尺寸。 (一般设置1000px以上)
- 注意:透视属性需要设置给 3D 变化元素的父级。
二、3D 旋转
- 3D旋转比2D旋转更复杂,需要分别对三个方向的旋转角度值:
属性值 |
说明 |
rotateX(angle) |
定义沿着 X 轴的 3D 旋转 |
rotateY(angle) |
定义沿着 Y 轴的 3D 旋转 |
rotateZ(angle) |
定义沿着 Z 轴的 3D 旋转 |
- 注意:属性值的角度区分正负;
- 正数表示沿对应坐标轴顺时针方向旋转,负数表示沿对应坐标轴逆时针方向旋转。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409164642769.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzY0MDE2MA==,size_16,color_FFFFFF,t_70)
1.1 举例(3D 旋转-rotateX(angle)
)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>1.1 举例(3D 旋转-rotateX(angle))</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 250px;
height: 200px;
border: 1px solid red;
margin: 50px;
perspective: 1000px;
}
.box img{
width: 250px;
height: 200px;
transition: all 1s ease;
}
.box img:hover {
transform: rotateX(60deg);
}
</style>
</head>