web小白的成长历程

117 阅读2分钟

移动web小白 第二天

一、空间转换

空间位移

  • X轴方向位移

    transform:translateX();
    
  • Y轴方向位移

    transform:translateY();
    
  • Z轴方向位移

    transform:translateZ();
    

透视(视距)

perspective

  • 给父元素添加,实现一个近大远小的效果,一般数值设置600px-1200px

            body {
                background-color: pink;
                /* 透视效果:近大远小 */
                perspective: 600px;
            }
    

空间旋转

  • 围绕X轴旋转,显示一个上下旋转的效果,例:向上旋转90°

            img:hover {
                transform: rotateX(90deg);
            }
    
  • 围绕Y轴旋转,显示一个左右旋转的效果,例:向右旋转90°

            img:hover {
                transform: rotateY(90deg);
            }
    
  • 围绕Z轴旋转,朝屏幕放大或缩小,需配合perspective使用,不然只是旋转,正值顺时针,负值逆时针

            img:hover {
                transform: rotateZ(900deg);
            }
    
  • 左手定则:左手大拇指指向轴线的正值方向,四指弯曲的方向即为正值旋转的方向。

  • 自定义旋转

    transform:rotate3d(x,y,z,旋转的角度)
    
  • 同时在两条轴线上旋转

        /* 旋转: 让大家在写代码的过程中看到立体盒子 */
        /* transform: rotateX(-20deg) rotateY(30deg); */
        /*3d导航可以给我们提供一个上帝视角*/
    

3D呈现

  • transform-style: flat 平面,默认值

  • transform-style: preserve-3d 开启3d环境

          .box {
              width: 200px;
              height: 200px;
              margin: 100px auto;
              background-color: pink;
              transition: 1s;
              /* 开启3d立体环境 */
              transform-style: preserve-3d;
            }
    

二、动画

定义动画

  •         @keyframes move {
              from{}
              to {}
            }
    
  •         @keyframes move {
                0%
                50% {}
                100% {}
            }
    

调用动画

  • animation: 动画名称 动画执行时间 次数 速度曲线 延迟时间 反向播放 停留结束位置

  • 速度曲线

    -ease:默认

    -linear:匀速

    -step:逐帧动画

  • 次数:infine(无限次)
  • 反向播放:alternate
  • 停留结束位置:forwards
  • 暂停动画:animation-play-state: paused;
  • 动画延迟:animation-delay