3D转换详解

1.3D转换简述及坐标轴解析

  • `3D` 的特点
  1. 近大远小
  2. 物体和面遮挡不可见
  • 三维坐标系
  1. x 轴:水平向右  -- **注意:x 轴右边是正值,左边是负值**
  2. y 轴:垂直向下  -- **注意:y 轴下面是正值,上面是负值**
  3. z 轴:垂直屏幕  --  **注意:往外边的是正值,往里面的是负值**

2.3D转换 

  •  `3D` 转换知识要点
  1. `3D` 位移:`translate3d(x, y, z)`
  2. `3D` 旋转:`rotate3d(x, y, z)`
  3. 透视:`perspctive`
  4.  `3D`呈现 `transfrom-style`
  • `3D` 移动 `translate3d`
  1. `3D` 移动就是在 `2D` 移动的基础上多加了一个可以移动的方向,就是 z 轴方向
  2. `transform: translateX(100px)`:仅仅是在 x 轴上移动
  3. `transform: translateY(100px)`:仅仅是在 y 轴上移动
  4. `transform: translateZ(100px)`:仅仅是在 z 轴上移动
  5. `transform: translate3d(x, y, z)`:其中x、y、z 分别指要移动的轴的方向的距离
  6. **注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充**
  • 语法

   ```css
    transform: translate3d(x, y, z)
   ```

  • 案例
   ```css
   transform: translate3d(100px, 100px, 100px)
   /* 注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充 */
   transform: translate3d(100px, 100px, 0)
   ```

3.透视 `perspective`

  • 1. 知识点讲解 

 

  1.    - 如果想要网页产生 `3D` 效果需要透视(理解成 `3D` 物体投影的 `2D` 平面上)
  2.    - 实际上模仿人类的视觉位置,可视为安排一直眼睛去看
  3.    - 透视也称为视距,所谓的视距就是人的眼睛到屏幕的距离
  4.    - 距离视觉点越近的在电脑平面成像越大,越远成像越小
  5.    - 透视的单位是像素
  • 2. 知识要点
  1.    - **透视需要写在被视察元素的父盒子上面**
  2.    - 注意下方图片
  3.      - d:就是视距,视距就是指人的眼睛到屏幕的距离
  4.  
  5.      - z:就是 z 轴,z 轴越大(正值),我们看到的物体就越大
  • 3. 案例

  ```css
   body {
     perspective: 1000px;
   }
   ```


4、 `translateZ`

  • 1.  `translateZ` 与 `perspecitve` 的区别

   - `perspecitve` 给父级进行设置,`translateZ` 给 子元素进行设置不同的大小

五、`3D` 旋转`rotateX`


> 3D 旋转指可以让元素在三维平面内沿着 x 轴、y 轴、z 轴 或者自定义轴进行旋转

  • 1. 语法
  1.    - `transform: rotateX(45deg)` -- 沿着 x 轴正方向旋转 45 度
  2.    -  `transform: rotateY(45deg)` -- 沿着 y 轴正方向旋转 45 度
  3.    -  `transform: rotateZ(45deg)` -- 沿着 z 轴正方向旋转 45 度
  4.    - `transform: rotate3d(x, y, z, 45deg)` -- 沿着自定义轴旋转 45 deg 为角度

 

  • 2.  代码案例
 ```css
   div {
     perspective: 300px;
   }
   
   img {
     display: block;
     margin: 100px auto;
     transition: all 1s;
   }
   
   img:hover {
     transform: rotateX(-45deg)
   }
   ```

 

  • 3. 左手准则

 

  1.    - 左手的手拇指指向 x 轴的正方向
  2.    - 其余手指的弯曲方向就是该元素沿着 x 轴旋转的方向

6、`3D` 旋转 `rotateY`

  • 1.  代码演示
 ```css
   div {
     perspective: 500px;
   }
   
   img {
     display: block;
     margin: 100px auto;
     transition: all 1s;
   }
   
   img:hover {
     transform: rotateY(180deg)
   }
   ```

 

  • 2. 左手准则

 

  1.    - 左手的拇指指向 y 轴的正方向
  2.    - 其余的手指弯曲方向就是该元素沿着 y 轴旋转的方向(正值)

 7、 `3D` 旋转 `rotateZ`

  • 1.  代码演示
```css
   div {
     perspective: 500px;
   }
   
   img {
     display: block;
     margin: 100px auto;
     transition: all 1s;
   }
   
   img:hover {
     transform: rotateZ(180deg)
   }
   ```

 

  • 2.   `rotate3d`
  1.    - `transform: rotate3d(x, y, z, deg)` -- 沿着自定义轴旋转 deg 为角度
  2.    - x, y, z 表示旋转轴的矢量,是标识你是否希望沿着该轴进行旋转,最后一个标识旋转的角度
  3.      - `transform: rotate3d(1, 1, 0, 180deg)` -- 沿着对角线旋转 45deg
  4.      - `transform: rotate3d(1, 0, 0, 180deg)` -- 沿着 x 轴旋转 45deg
  • 3. 案例
```css
   div {
     perspective: 500px;
   }
   
   img {
     display: block;
     margin: 100px auto;
     transition: all 1s;
   }
   
   img:hover {
     transform: rotate3d(1, 1, 0, 180deg)
   }
   ```


 8、`3D` 呈现 `transform-style`

  •    1.  `transform-style`

  1.       -  控制子元素是否开启三维立体环境
  2.       - `transform-style: flat`  代表子元素不开启 `3D` 立体空间,默认的
  3.       - `transform-style: preserve-3d` 子元素开启立体空间
  4.       -  代码写给父级,但是影响的是子盒子
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值