使用动画

掌握所有动画类型和缓动函数

使用动画

学习如何用动画让视频生动起来。

动画类型

淡入淡出动画

让元素淡入和淡出:

{
  "animations": [
    { "type": "fadeIn", "duration": 0.5 },
    { "type": "fadeOut", "duration": 0.5, "delay": 4.5 }
  ]
}
类型描述
fadeIn从透明淡入到可见
fadeOut从可见淡出到透明

滑动动画

从某个方向滑入元素:

{
  "animations": [
    { "type": "slideIn", "direction": "up", "duration": 0.8 },
    { "type": "slideOut", "direction": "right", "duration": 0.5 }
  ]
}
方向效果
up从底部滑到位置
down从顶部滑到位置
left从右侧滑到位置
right从左侧滑到位置

缩放动画

放大和缩小元素:

{
  "animations": [
    { "type": "zoomIn", "duration": 0.5 },
    { "type": "zoomOut", "duration": 0.5 }
  ]
}

自定义动画

动画特定属性:

缩放动画

{
  "animations": [
    { "type": "scale", "from": 1, "to": 1.2, "duration": 5 }
  ]
}

适合图片的 Ken Burns 效果。

移动动画

{
  "animations": [
    { "type": "move", "from": { "x": 0, "y": 0 }, "to": { "x": 100, "y": 50 }, "duration": 3 }
  ]
}

旋转动画

{
  "animations": [
    { "type": "rotate", "from": 0, "to": 360, "duration": 2, "loop": true }
  ]
}

缓动函数

控制动画的时间和感觉:

{
  "animations": [
    { "type": "zoomIn", "duration": 0.5, "easing": "easeOutBack" }
  ]
}

可用缓动函数

缓动描述适用场景
linear恒定速度旋转、连续运动
easeInSine慢速开始自然减速
easeOutSine慢速结束自然加速
easeInOutSine慢速开始和结束平滑过渡
easeInQuad二次加速建立动量
easeOutQuad二次减速稳定到位
easeInOutQuad平滑二次曲线通用
easeInCubic三次加速强烈蓄力
easeOutCubic三次减速柔和落地
easeInOutCubic平滑三次曲线平滑运动
easeInBack开始前回拉预期效果
easeOutBack超出后回弹弹性感觉
easeInOutBack两端回弹俏皮运动
easeInElastic弹性开始卡通风格
easeOutElastic弹性结束弹跳落地
easeInBounce弹跳开始俏皮入场
easeOutBounce弹跳结束自然物理

动画属性

时长

动画持续时间(秒):

{ "duration": 0.5 }

延迟

开始前等待(秒):

{ "delay": 1.0 }

循环

重复动画:

{ "loop": true }        // 无限循环
{ "loop": 3 }           // 循环 3 次

组合动画

多个动画同时运行:

{
  "animations": [
    { "type": "fadeIn", "duration": 0.5 },
    { "type": "slideIn", "direction": "up", "duration": 0.8 },
    { "type": "scale", "from": 0.8, "to": 1, "duration": 0.5 }
  ]
}

关键帧动画

精确控制时使用关键帧:

{
  "keyframes": [
    {
      "property": "opacity",
      "frames": [
        { "time": 0, "value": 0 },
        { "time": 0.5, "value": 1, "easing": "easeOutCubic" },
        { "time": 4.5, "value": 1 },
        { "time": 5, "value": 0, "easing": "easeInCubic" }
      ]
    }
  ]
}

常用模式

有冲击力的入场

{
  "animations": [
    { "type": "zoomIn", "duration": 0.5, "easing": "easeOutBack" },
    { "type": "fadeIn", "duration": 0.3 }
  ]
}

Ken Burns 效果

{
  "type": "image",
  "animations": [
    { "type": "scale", "from": 1, "to": 1.1, "duration": 5 },
    { "type": "move", "from": { "x": 0, "y": 0 }, "to": { "x": 50, "y": 30 }, "duration": 5 }
  ]
}

交错列表

{
  "clips": [
    { "text": "项目 1", "start": 0, "animations": [{ "type": "fadeIn", "duration": 0.3 }] },
    { "text": "项目 2", "start": 0.2, "animations": [{ "type": "fadeIn", "duration": 0.3 }] },
    { "text": "项目 3", "start": 0.4, "animations": [{ "type": "fadeIn", "duration": 0.3 }] }
  ]
}

脉冲效果

{
  "animations": [
    { "type": "scale", "from": 1, "to": 1.05, "duration": 0.5, "loop": true, "easing": "easeInOutSine" }
  ]
}

最佳实践

  1. 保持微妙:动画应该增强而非分散注意力
  2. 一致的时间:各元素使用相似的时长
  3. 交错元素:不要同时动画所有内容
  4. 匹配内容:动画应配合内容氛围
  5. 性能:移动端限制同时进行的动画数量

下一步