实现3D动画
一、transform
Transform是形变的意思(通常也叫变换),transformer就是变形金刚
常见的函数transform function有:
平移:translate(x, y)
缩放:scale(x, y)
旋转:rotate(deg)
倾斜:skew(deg, deg
二、rotate(旋转)
该CSS函数定义一个变换,它将元素围绕固定轴旋转。旋转量由指定的角度确定; 为正,旋转将为顺时针,为负,则为逆时针。
只有一个值,表示旋转的角度(单位deg)
三、translate(平移)
translateX(x)、translateY(y)、translateZ(z)
该函数表示在二、三维平面上移动元素
四、scale(缩放)
scaleX、scaleY、scaleZ
函数指定了一个沿 x、y 、z轴调整元素缩放比例因子1:保持不变
2:放大一倍
0.5:缩小一半
五、transform-style(选择3D)
transform-style
该CSS属性用于设置元素的子元素是定位在 3D 空间中还是平展在元素的2D平面中
flat:指示元素的子元素位于元素本身的平面内。
preserve-3d:指示元素的子元素应位于 3D 空间中
六、制作一个正方体
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><style>body {margin: 0;padding: 100px;background-color: aqua;}.box {position: relative;width: 100px;height: 100px;background-color: red;/* 在父元素中添加 transform-style来启用3D空间 */transform-style: preserve-3d;transform: rotateX(-33.5deg) rotateY(45deg);}.item {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}.top {/* translateZ(50px)向上平移 */transform: rotateX(90deg) translateZ(50px);background-color: antiquewhite;}.bottom {background-color: rgba(190, 216, 76, 0.712);transform: rotateX(-90deg) translateZ(50px);}.front {background-color: rgba(100, 100, 100, 0.4);transform: rotateY(0deg) translateZ(50px);}.back {background-color: rgba(0, 255, 255, 0.4);transform: rotateY(-180deg) translateZ(50px);}.left {background-color: rgba(221, 103, 182, 0.4);transform: rotateY(-90deg) translateZ(50px);}.right {background-color: rgba(0, 0, 255, 0.4);transform: rotateY(90deg) translateZ(50px);}</style><body><div class="box">div<!-- 子元素 --><div class="item top">1</div><div class="item bottom">2</div><div class="item front">3</div><div class="item back">4</div><div class="item left">5</div><div class="item right">6</div></div></body>
</html>