移动web:3D&动画

144 阅读1分钟

空间转换

空间位移

  • transfrom: translateX( )
  • transfrom: translateY( )
  • transfrom: translateZ( )

透视、景深、视距

body {
            perspective: 800px; 
}
  • perspective
  • 添加给父级 实现近大远小的效果
  • 范围一般在 600px -1200px

空间旋转

  • transform: rotateX( );

    • 沿x轴旋转
  • transform: rotateY( );

    • 沿y轴旋转
  • transform: rotateZ( );

    • 沿z轴旋转
  • 左手法则

    • 与方向有关
  • 了解

    • rotate3D(x, y, z, 角度);

      • 自定义轴旋转
      • x, y, z 的取值范围为 0-1 之间的数字
      • 第四个值为旋转角度

立体呈现

  • transform-style

    • flat

      • 平面
      • 默认值
    • : preserve-3d 开启3d环境

      transform-style: preserve-3d;

      • 配合perspective使用
      • 给父级添加
      • 使子元素真正处于3D空间

动画

1. 定义动画

  • @keyframes

    • 关键帧
  • from{} to{}

@keyframes test {
            from {
                transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
            }

            to {
                transform: rotateX(360deg) rotateY(360deg);
            }
}      
  • 0% ... 20% ... 100%
 @keyframes test {
            0% {}

            20% {
                transform: rotateY(30deg);
            }

            40% {
                transform: rotateZ(30deg);
            }

            60% {
                transform: rotateX(130deg);
            }

            80% {
                transform: rotateZ(60deg);
            }

            100% {
                transform: rotateX(30deg);
            }
 }

2. 使用动画

  • animation

    animation: name duration timing-function delay iteration-count direction fill-mode;

    • 必写属性

      • 动画名
      • 时间
    • 属性连写

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

      • animation: name duration timing-function delay iteration-count direction fill-mode;

        • 常用属性

          • 速度曲线

          • 次数

            • infinite

              • 无数次
          • 反向播放

            • alternate
          • 停留结束位置

            • forwards
          • 暂停动画

            • animation-play-state: paused;
          • 动画延迟

            • animation-delay